1 MODULE F95_LAPACK 2! 3! -- LAPACK95 interface driver routine (version 3.0) -- 4! UNI-C, Denmark; Univ. of Tennessee, USA; NAG Ltd., UK 5! September, 2000 6! 7 8 INTERFACE LA_LAMCH 9 10 FUNCTION SLAMCH_F95( PRECISION, CMACH, INFO ) 11 USE LA_PRECISION, ONLY: WP => SP 12 CHARACTER(LEN=1), INTENT(IN) :: CMACH 13 REAL(WP), INTENT(IN) :: PRECISION 14 INTEGER, INTENT(OUT), OPTIONAL :: INFO 15 REAL(WP) :: SLAMCH_F95 16 END FUNCTION SLAMCH_F95 17 18 FUNCTION DLAMCH_F95( PRECISION, CMACH, INFO ) 19 USE LA_PRECISION, ONLY: WP => DP 20 CHARACTER(LEN=1), INTENT(IN) :: CMACH 21 REAL(WP), INTENT(IN) :: PRECISION 22 INTEGER, INTENT(OUT), OPTIONAL :: INFO 23 REAL(WP) :: DLAMCH_F95 24 END FUNCTION DLAMCH_F95 25 26 END INTERFACE 27 28 INTERFACE LA_GGSVD 29 30 SUBROUTINE SGGSVD_F95( A, B, ALPHA, BETA, K, L, U, V, Q, IWORK, & 31 & INFO ) 32 USE LA_PRECISION, ONLY: WP => SP 33 INTEGER, INTENT(OUT), OPTIONAL :: INFO, K, L 34 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 35 REAL(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 36 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), V(:,:), & 37 & Q(:,:) 38 INTEGER, INTENT(OUT), OPTIONAL :: IWORK(:) 39 END SUBROUTINE SGGSVD_F95 40 41 SUBROUTINE DGGSVD_F95( A, B, ALPHA, BETA, K, L, U, V, Q, IWORK, & 42 & INFO ) 43 USE LA_PRECISION, ONLY: WP => DP 44 INTEGER, INTENT(OUT), OPTIONAL :: INFO, K, L 45 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 46 REAL(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 47 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), V(:,:), & 48 & Q(:,:) 49 INTEGER, INTENT(OUT), OPTIONAL :: IWORK(:) 50 END SUBROUTINE DGGSVD_F95 51 52 SUBROUTINE CGGSVD_F95( A, B, ALPHA, BETA, K, L, U, V, Q, IWORK, & 53 & INFO ) 54 USE LA_PRECISION, ONLY: WP => SP 55 INTEGER, INTENT(OUT), OPTIONAL :: INFO, K, L 56 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 57 REAL(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 58 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), V(:,:), & 59 & Q(:,:) 60 INTEGER, INTENT(OUT), OPTIONAL :: IWORK(:) 61 END SUBROUTINE CGGSVD_F95 62 63 SUBROUTINE ZGGSVD_F95( A, B, ALPHA, BETA, K, L, U, V, Q, IWORK, & 64 & INFO ) 65 USE LA_PRECISION, ONLY: WP => DP 66 INTEGER, INTENT(OUT), OPTIONAL :: INFO, K, L 67 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 68 REAL(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 69 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), V(:,:), & 70 & Q(:,:) 71 INTEGER, INTENT(OUT), OPTIONAL :: IWORK(:) 72 END SUBROUTINE ZGGSVD_F95 73 74 END INTERFACE 75 76 INTERFACE LA_GEGV 77 78 SUBROUTINE SGEGV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 79 USE LA_PRECISION, ONLY: WP => SP 80 INTEGER, INTENT(OUT), OPTIONAL :: INFO 81 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 82 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 83 & BETA(:) 84 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 85 END SUBROUTINE SGEGV_F95 86 87 SUBROUTINE DGEGV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 88 USE LA_PRECISION, ONLY: WP => DP 89 INTEGER, INTENT(OUT), OPTIONAL :: INFO 90 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 91 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 92 & BETA(:) 93 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 94 END SUBROUTINE DGEGV_F95 95 96 97 SUBROUTINE CGEGV_F95( A, B, ALPHA, BETA, VL, VR, INFO ) 98 USE LA_PRECISION, ONLY: WP => SP 99 INTEGER, INTENT(OUT), OPTIONAL :: INFO 100 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 101 COMPLEX(WP), INTENT(OUT), OPTIONAL :: ALPHA(:), BETA(:) 102 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 103 END SUBROUTINE CGEGV_F95 104 105 SUBROUTINE ZGEGV_F95( A, B, ALPHA, BETA, VL, VR, INFO ) 106 USE LA_PRECISION, ONLY: WP => DP 107 INTEGER, INTENT(OUT), OPTIONAL :: INFO 108 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 109 COMPLEX(WP), INTENT(OUT), OPTIONAL :: ALPHA(:), BETA(:) 110 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 111 END SUBROUTINE ZGEGV_F95 112 113 END INTERFACE 114 115 INTERFACE LA_GEGS 116 117 SUBROUTINE SGEGS_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 118 & INFO ) 119 USE LA_PRECISION, ONLY: WP => SP 120 INTEGER, INTENT(OUT), OPTIONAL :: INFO 121 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 122 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 123 & BETA(:) 124 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VSL(:,:), VSR(:,:) 125 END SUBROUTINE SGEGS_F95 126 127 SUBROUTINE DGEGS_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 128 & INFO ) 129 USE LA_PRECISION, ONLY: WP => DP 130 INTEGER, INTENT(OUT), OPTIONAL :: INFO 131 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 132 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 133 & BETA(:) 134 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VSL(:,:), VSR(:,:) 135 END SUBROUTINE DGEGS_F95 136 137 138 SUBROUTINE CGEGS_F95( A, B, ALPHA, BETA, VSL, VSR, INFO ) 139 USE LA_PRECISION, ONLY: WP => SP 140 INTEGER, INTENT(OUT), OPTIONAL :: INFO 141 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 142 COMPLEX(WP), INTENT(OUT), OPTIONAL :: ALPHA(:), BETA(:) 143 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VSL(:,:), & 144 & VSR(:,:) 145 END SUBROUTINE CGEGS_F95 146 147 SUBROUTINE ZGEGS_F95( A, B, ALPHA, BETA, VSL, VSR, INFO ) 148 USE LA_PRECISION, ONLY: WP => DP 149 INTEGER, INTENT(OUT), OPTIONAL :: INFO 150 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 151 COMPLEX(WP), INTENT(OUT), OPTIONAL :: ALPHA(:), BETA(:) 152 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VSL(:,:), & 153 & VSR(:,:) 154 END SUBROUTINE ZGEGS_F95 155 156 END INTERFACE 157 158 INTERFACE LA_SBGVX 159 160 SUBROUTINE SSBGVX_F95( AB, BB, W, UPLO, Z, VL, VU, IL, IU, M, & 161 & IFAIL, Q, ABSTOL, INFO ) 162 USE LA_PRECISION, ONLY: WP => SP 163 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 164 REAL(WP), INTENT(OUT) :: W(:) 165 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 166 INTEGER, INTENT(OUT), OPTIONAL :: INFO 167 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:), Q(:,:) 168 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 169 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 170 INTEGER, INTENT(OUT), OPTIONAL :: M 171 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 172 END SUBROUTINE SSBGVX_F95 173 174 SUBROUTINE DSBGVX_F95( AB, BB, W, UPLO, Z, VL, VU, IL, IU, M, & 175 & IFAIL, Q, ABSTOL, INFO ) 176 USE LA_PRECISION, ONLY: WP => DP 177 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 178 REAL(WP), INTENT(OUT) :: W(:) 179 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 180 INTEGER, INTENT(OUT), OPTIONAL :: INFO 181 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:), Q(:,:) 182 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 183 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 184 INTEGER, INTENT(OUT), OPTIONAL :: M 185 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 186 END SUBROUTINE DSBGVX_F95 187 188 END INTERFACE 189 190 INTERFACE LA_HBGVX 191 192 SUBROUTINE CHBGVX_F95( AB, BB, W, UPLO, Z, VL, VU, IL, IU, M, & 193 & IFAIL, Q, ABSTOL, INFO ) 194 USE LA_PRECISION, ONLY: WP => SP 195 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 196 REAL(WP), INTENT(OUT) :: W(:) 197 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 198 INTEGER, INTENT(OUT), OPTIONAL :: INFO 199 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:), Q(:,:) 200 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 201 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 202 INTEGER, INTENT(OUT), OPTIONAL :: M 203 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 204 END SUBROUTINE CHBGVX_F95 205 206 SUBROUTINE ZHBGVX_F95( AB, BB, W, UPLO, Z, VL, VU, IL, IU, M, & 207 & IFAIL, Q, ABSTOL, INFO ) 208 USE LA_PRECISION, ONLY: WP => DP 209 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 210 REAL(WP), INTENT(OUT) :: W(:) 211 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 212 INTEGER, INTENT(OUT), OPTIONAL :: INFO 213 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:), Q(:,:) 214 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 215 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 216 INTEGER, INTENT(OUT), OPTIONAL :: M 217 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 218 END SUBROUTINE ZHBGVX_F95 219 220 END INTERFACE 221 222 INTERFACE LA_SBGVD 223 224 225 SUBROUTINE SSBGVD_F95( AB, BB, W, UPLO, Z, INFO ) 226 USE LA_PRECISION, ONLY: WP => SP 227 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 228 REAL(WP), INTENT(OUT) :: W(:) 229 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 230 INTEGER, INTENT(OUT), OPTIONAL :: INFO 231 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 232 END SUBROUTINE SSBGVD_F95 233 234 235 SUBROUTINE DSBGVD_F95( AB, BB, W, UPLO, Z, INFO ) 236 USE LA_PRECISION, ONLY: WP => DP 237 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 238 REAL(WP), INTENT(OUT) :: W(:) 239 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 240 INTEGER, INTENT(OUT), OPTIONAL :: INFO 241 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 242 END SUBROUTINE DSBGVD_F95 243 244 END INTERFACE 245 246 INTERFACE LA_HBGVD 247 248 SUBROUTINE CHBGVD_F95( AB, BB, W, UPLO, Z, INFO ) 249 USE LA_PRECISION, ONLY: WP => SP 250 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 251 REAL(WP), INTENT(OUT) :: W(:) 252 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 253 INTEGER, INTENT(OUT), OPTIONAL :: INFO 254 COMPLEX(WP), INTENT(OUT), OPTIONAL,TARGET :: Z(:,:) 255 END SUBROUTINE CHBGVD_F95 256 257 SUBROUTINE ZHBGVD_F95( AB, BB, W, UPLO, Z, INFO ) 258 USE LA_PRECISION, ONLY: WP => DP 259 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 260 REAL(WP), INTENT(OUT) :: W(:) 261 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 262 INTEGER, INTENT(OUT), OPTIONAL :: INFO 263 COMPLEX(WP), INTENT(OUT), OPTIONAL,TARGET :: Z(:,:) 264 END SUBROUTINE ZHBGVD_F95 265 266 267 END INTERFACE 268 269 INTERFACE LA_SBGV 270 271 SUBROUTINE SSBGV_F95( A, B, W, UPLO, Z, INFO ) 272 USE LA_PRECISION, ONLY: WP => SP 273 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 274 INTEGER, INTENT(OUT), OPTIONAL :: INFO 275 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 276 REAL(WP), INTENT(OUT) :: W(:) 277 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 278 END SUBROUTINE SSBGV_F95 279 280 SUBROUTINE DSBGV_F95( A, B, W, UPLO, Z, INFO ) 281 USE LA_PRECISION, ONLY: WP => DP 282 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 283 INTEGER, INTENT(OUT), OPTIONAL :: INFO 284 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 285 REAL(WP), INTENT(OUT) :: W(:) 286 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 287 END SUBROUTINE DSBGV_F95 288 289 END INTERFACE 290 291 INTERFACE LA_HBGV 292 293 SUBROUTINE CHBGV_F95( A, B, W, UPLO, Z, INFO ) 294 USE LA_PRECISION, ONLY: WP => SP 295 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 296 INTEGER, INTENT(OUT), OPTIONAL :: INFO 297 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 298 REAL(WP), INTENT(OUT) :: W(:) 299 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 300 END SUBROUTINE CHBGV_F95 301 302 SUBROUTINE ZHBGV_F95( A, B, W, UPLO, Z, INFO ) 303 USE LA_PRECISION, ONLY: WP => DP 304 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 305 INTEGER, INTENT(OUT), OPTIONAL :: INFO 306 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 307 REAL(WP), INTENT(OUT) :: W(:) 308 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 309 END SUBROUTINE ZHBGV_F95 310 311 END INTERFACE 312 313 INTERFACE LA_SPGVX 314 315 SUBROUTINE SSPGVX_F95( AP, BP, W, ITYPE, UPLO, Z, VL, VU, IL, & 316 & IU, M, IFAIL, ABSTOL, INFO ) 317 USE LA_PRECISION, ONLY: WP => SP 318 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 319 REAL(WP), INTENT(OUT) :: W(:) 320 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 321 INTEGER, INTENT(OUT), OPTIONAL :: INFO 322 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 323 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 324 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 325 INTEGER, INTENT(OUT), OPTIONAL :: M 326 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 327 END SUBROUTINE SSPGVX_F95 328 329 SUBROUTINE DSPGVX_F95( AP, BP, W, ITYPE, UPLO, Z, VL, VU, IL, & 330 & IU, M, IFAIL, ABSTOL, INFO ) 331 USE LA_PRECISION, ONLY: WP => DP 332 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 333 REAL(WP), INTENT(OUT) :: W(:) 334 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 335 INTEGER, INTENT(OUT), OPTIONAL :: INFO 336 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 337 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 338 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 339 INTEGER, INTENT(OUT), OPTIONAL :: M 340 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 341 END SUBROUTINE DSPGVX_F95 342 343 END INTERFACE 344 345 INTERFACE LA_HPGVX 346 347 SUBROUTINE CHPGVX_F95( AP, BP, W, ITYPE, UPLO, Z, VL, VU, IL, IU,& 348 & M, IFAIL, ABSTOL, INFO ) 349 USE LA_PRECISION, ONLY: WP => SP 350 COMPLEX(WP), INTENT(INOUT) :: AP(:), BP(:) 351 REAL(WP), INTENT(OUT) :: W(:) 352 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 353 INTEGER, INTENT(OUT), OPTIONAL :: INFO 354 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 355 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 356 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 357 INTEGER, INTENT(OUT), OPTIONAL :: M 358 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 359 END SUBROUTINE CHPGVX_F95 360 361 SUBROUTINE ZHPGVX_F95( AP, BP, W, ITYPE, UPLO, Z, VL, VU, IL, IU,& 362 & M, IFAIL, ABSTOL, INFO ) 363 USE LA_PRECISION, ONLY: WP => DP 364 COMPLEX(WP), INTENT(INOUT) :: AP(:), BP(:) 365 REAL(WP), INTENT(OUT) :: W(:) 366 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 367 INTEGER, INTENT(OUT), OPTIONAL :: INFO 368 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 369 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 370 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 371 INTEGER, INTENT(OUT), OPTIONAL :: M 372 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 373 END SUBROUTINE ZHPGVX_F95 374 375 END INTERFACE 376 377 INTERFACE LA_SPGVD 378 379 SUBROUTINE SSPGVD_F95( AP, BP, W, ITYPE, UPLO, Z, INFO ) 380 USE LA_PRECISION, ONLY: WP => SP 381 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 382 REAL(WP), INTENT(OUT) :: W(:) 383 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 384 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 385 INTEGER, INTENT(OUT), OPTIONAL :: INFO 386 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 387 END SUBROUTINE SSPGVD_F95 388 389 SUBROUTINE DSPGVD_F95( AP, BP, W, ITYPE, UPLO, Z, INFO ) 390 USE LA_PRECISION, ONLY: WP => DP 391 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 392 REAL(WP), INTENT(OUT) :: W(:) 393 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 394 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 395 INTEGER, INTENT(OUT), OPTIONAL :: INFO 396 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 397 END SUBROUTINE DSPGVD_F95 398 399 END INTERFACE 400 401 INTERFACE LA_HPGVD 402 403 SUBROUTINE CHPGVD_F95( AP, BP, W, ITYPE, UPLO, Z, INFO ) 404 USE LA_PRECISION, ONLY: WP => SP 405 COMPLEX(WP), INTENT(INOUT) :: AP(:), BP(:) 406 REAL(WP), INTENT(OUT) :: W(:) 407 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 408 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 409 INTEGER, INTENT(OUT), OPTIONAL :: INFO 410 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 411 END SUBROUTINE CHPGVD_F95 412 413 SUBROUTINE ZHPGVD_F95( AP, BP, W, ITYPE, UPLO, Z, INFO ) 414 USE LA_PRECISION, ONLY: WP => DP 415 COMPLEX(WP), INTENT(INOUT) :: AP(:), BP(:) 416 REAL(WP), INTENT(OUT) :: W(:) 417 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 418 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 419 INTEGER, INTENT(OUT), OPTIONAL :: INFO 420 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 421 END SUBROUTINE ZHPGVD_F95 422 423 END INTERFACE 424 425 INTERFACE LA_SPGV 426 427 SUBROUTINE SSPGV_F95( A, B, W, ITYPE, UPLO, Z, INFO ) 428 USE LA_PRECISION, ONLY: WP => SP 429 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 430 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 431 INTEGER, INTENT(OUT), OPTIONAL :: INFO 432 REAL(WP), INTENT(INOUT) :: A(:), B(:) 433 REAL(WP), INTENT(OUT) :: W(:) 434 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 435 END SUBROUTINE SSPGV_F95 436 437 SUBROUTINE DSPGV_F95( A, B, W, ITYPE, UPLO, Z, INFO ) 438 USE LA_PRECISION, ONLY: WP => DP 439 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 440 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 441 INTEGER, INTENT(OUT), OPTIONAL :: INFO 442 REAL(WP), INTENT(INOUT) :: A(:), B(:) 443 REAL(WP), INTENT(OUT) :: W(:) 444 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 445 END SUBROUTINE DSPGV_F95 446 447 END INTERFACE 448 449 INTERFACE LA_HPGV 450 451 SUBROUTINE CHPGV_F95( A, B, W, ITYPE, UPLO, Z, INFO ) 452 USE LA_PRECISION, ONLY: WP => SP 453 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 454 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 455 INTEGER, INTENT(OUT), OPTIONAL :: INFO 456 COMPLEX(WP), INTENT(INOUT) :: A(:), B(:) 457 REAL(WP), INTENT(OUT) :: W(:) 458 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 459 END SUBROUTINE CHPGV_F95 460 461 SUBROUTINE ZHPGV_F95( A, B, W, ITYPE, UPLO, Z, INFO ) 462 USE LA_PRECISION, ONLY: WP => DP 463 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 464 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 465 INTEGER, INTENT(OUT), OPTIONAL :: INFO 466 COMPLEX(WP), INTENT(INOUT) :: A(:), B(:) 467 REAL(WP), INTENT(OUT) :: W(:) 468 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 469 END SUBROUTINE ZHPGV_F95 470 471 END INTERFACE 472 473 INTERFACE LA_GESVD 474 475 SUBROUTINE SGESVD_F95( A, S, U, VT, WW, JOB, INFO ) 476 USE LA_PRECISION, ONLY: WP => SP 477 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 478 INTEGER, INTENT(OUT), OPTIONAL :: INFO 479 REAL(WP), INTENT(INOUT) :: A(:,:) 480 REAL(WP), INTENT(OUT) :: S(:) 481 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 482 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 483 END SUBROUTINE SGESVD_F95 484 485 SUBROUTINE DGESVD_F95( A, S, U, VT, WW, JOB, INFO ) 486 USE LA_PRECISION, ONLY: WP => DP 487 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 488 INTEGER, INTENT(OUT), OPTIONAL :: INFO 489 REAL(WP), INTENT(INOUT) :: A(:,:) 490 REAL(WP), INTENT(OUT) :: S(:) 491 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 492 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 493 END SUBROUTINE DGESVD_F95 494 495 SUBROUTINE CGESVD_F95( A, S, U, VT, WW, JOB, INFO ) 496 USE LA_PRECISION, ONLY: WP => SP 497 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 498 INTEGER, INTENT(OUT), OPTIONAL :: INFO 499 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 500 REAL(WP), INTENT(OUT) :: S(:) 501 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 502 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 503 END SUBROUTINE CGESVD_F95 504 505 SUBROUTINE ZGESVD_F95( A, S, U, VT, WW, JOB, INFO ) 506 USE LA_PRECISION, ONLY: WP => DP 507 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 508 INTEGER, INTENT(OUT), OPTIONAL :: INFO 509 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 510 REAL(WP), INTENT(OUT) :: S(:) 511 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 512 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 513 END SUBROUTINE ZGESVD_F95 514 515 END INTERFACE 516 517 INTERFACE LA_GEEVX 518 519 SUBROUTINE SGEEVX_F95( A, WR, WI, VL, VR, BALANC, ILO, IHI, & 520 & SCALE, ABNRM, RCONDE, RCONDV, INFO ) 521 USE LA_PRECISION, ONLY: WP => SP 522 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 523 INTEGER, INTENT(OUT), OPTIONAL :: INFO, ILO, IHI 524 REAL(WP), INTENT(INOUT) :: A(:,:) 525 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM 526 REAL(WP), INTENT(OUT), OPTIONAL :: SCALE(:), RCONDE(:), & 527 & RCONDV(:) 528 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 529 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 530 END SUBROUTINE SGEEVX_F95 531 532 SUBROUTINE DGEEVX_F95( A, WR, WI, VL, VR, BALANC, ILO, IHI, & 533 & SCALE, ABNRM, RCONDE, RCONDV, INFO ) 534 USE LA_PRECISION, ONLY: WP => DP 535 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 536 INTEGER, INTENT(OUT), OPTIONAL :: INFO, ILO, IHI 537 REAL(WP), INTENT(INOUT) :: A(:,:) 538 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM 539 REAL(WP), INTENT(OUT), OPTIONAL :: SCALE(:), RCONDE(:), & 540 & RCONDV(:) 541 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 542 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 543 END SUBROUTINE DGEEVX_F95 544 545 SUBROUTINE CGEEVX_F95( A, W, VL, VR, BALANC, ILO, IHI, SCALE, & 546 & ABNRM, RCONDE, RCONDV, INFO ) 547 USE LA_PRECISION, ONLY: WP => SP 548 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 549 INTEGER, INTENT(OUT), OPTIONAL :: INFO, ILO, IHI 550 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 551 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM 552 REAL(WP), INTENT(OUT), OPTIONAL :: SCALE(:), RCONDE(:), & 553 & RCONDV(:) 554 COMPLEX(WP), INTENT(OUT) :: W(:) 555 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 556 END SUBROUTINE CGEEVX_F95 557 558 SUBROUTINE ZGEEVX_F95( A, W, VL, VR, BALANC, ILO, IHI, SCALE, & 559 & ABNRM, RCONDE, RCONDV, INFO ) 560 USE LA_PRECISION, ONLY: WP => DP 561 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 562 INTEGER, INTENT(OUT), OPTIONAL :: INFO, ILO, IHI 563 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 564 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM 565 REAL(WP), INTENT(OUT), OPTIONAL :: SCALE(:), RCONDE(:), & 566 & RCONDV(:) 567 COMPLEX(WP), INTENT(OUT) :: W(:) 568 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 569 END SUBROUTINE ZGEEVX_F95 570 571 END INTERFACE 572 573 INTERFACE LA_GGEVX 574 575 SUBROUTINE SGGEVX_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, & 576 & BALANC, ILO, IHI, LSCALE, RSCALE, ABNRM, & 577 & BBNRM, RCONDE, RCONDV, INFO ) 578 USE LA_PRECISION, ONLY: WP => SP 579 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 580 INTEGER, INTENT(OUT), OPTIONAL :: INFO 581 INTEGER, INTENT(OUT), OPTIONAL :: ILO,IHI 582 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM, BBNRM 583 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 584 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:) 585 REAL(WP), INTENT(OUT) :: BETA(:) 586 REAL(WP), INTENT(OUT), OPTIONAL ::LSCALE(:), RSCALE(:), & 587 & RCONDE(:), RCONDV(:) 588 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 589 END SUBROUTINE SGGEVX_F95 590 591 SUBROUTINE DGGEVX_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, & 592 & BALANC, ILO, IHI, LSCALE, RSCALE, ABNRM, & 593 & BBNRM, RCONDE, RCONDV, INFO ) 594 USE LA_PRECISION, ONLY: WP => DP 595 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 596 INTEGER, INTENT(OUT), OPTIONAL :: INFO 597 INTEGER, INTENT(OUT), OPTIONAL :: ILO,IHI 598 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM, BBNRM 599 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 600 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:) 601 REAL(WP), INTENT(OUT) :: BETA(:) 602 REAL(WP), INTENT(OUT), OPTIONAL ::LSCALE(:), RSCALE(:), & 603 & RCONDE(:), RCONDV(:) 604 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 605 END SUBROUTINE DGGEVX_F95 606 607 SUBROUTINE CGGEVX_F95( A, B, ALPHA, BETA, VL, VR, BALANC, ILO, & 608 & IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE,& 609 & RCONDV, INFO ) 610 USE LA_PRECISION, ONLY: WP => SP 611 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 612 INTEGER, INTENT(OUT), OPTIONAL :: INFO 613 INTEGER, INTENT(OUT), OPTIONAL :: ILO,IHI 614 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM, BBNRM 615 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 616 COMPLEX(WP), INTENT(OUT) :: ALPHA(:) 617 COMPLEX(WP), INTENT(OUT) :: BETA(:) 618 REAL(WP), INTENT(OUT), OPTIONAL :: LSCALE(:), RSCALE(:), & 619 & RCONDE(:), RCONDV(:) 620 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 621 END SUBROUTINE CGGEVX_F95 622 623 SUBROUTINE ZGGEVX_F95( A, B, ALPHA, BETA, VL, VR, BALANC, ILO, & 624 & IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE,& 625 & RCONDV, INFO ) 626 USE LA_PRECISION, ONLY: WP => DP 627 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 628 INTEGER, INTENT(OUT), OPTIONAL :: INFO 629 INTEGER, INTENT(OUT), OPTIONAL :: ILO,IHI 630 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM, BBNRM 631 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 632 COMPLEX(WP), INTENT(OUT) :: ALPHA(:) 633 COMPLEX(WP), INTENT(OUT) :: BETA(:) 634 REAL(WP), INTENT(OUT), OPTIONAL :: LSCALE(:), RSCALE(:), & 635 & RCONDE(:), RCONDV(:) 636 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 637 END SUBROUTINE ZGGEVX_F95 638 639 END INTERFACE 640 641 INTERFACE LA_GGEV 642 643 SUBROUTINE SGGEV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 644 USE LA_PRECISION, ONLY: WP => SP 645 INTEGER, INTENT(OUT), OPTIONAL :: INFO 646 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 647 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 648 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 649 END SUBROUTINE SGGEV_F95 650 651 SUBROUTINE DGGEV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 652 USE LA_PRECISION, ONLY: WP => DP 653 INTEGER, INTENT(OUT), OPTIONAL :: INFO 654 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 655 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 656 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 657 END SUBROUTINE DGGEV_F95 658 659 SUBROUTINE CGGEV_F95( A, B, ALPHA, BETA, VL, VR, INFO ) 660 USE LA_PRECISION, ONLY: WP => SP 661 INTEGER, INTENT(OUT), OPTIONAL :: INFO 662 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 663 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 664 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 665 END SUBROUTINE CGGEV_F95 666 667 SUBROUTINE ZGGEV_F95( A, B, ALPHA, BETA, VL, VR, INFO ) 668 USE LA_PRECISION, ONLY: WP => DP 669 INTEGER, INTENT(OUT), OPTIONAL :: INFO 670 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 671 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 672 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 673 END SUBROUTINE ZGGEV_F95 674 675 END INTERFACE 676 677 INTERFACE LA_GEEV 678 679 SUBROUTINE SGEEV_F95( A, WR, WI, VL, VR, INFO ) 680 USE LA_PRECISION, ONLY: WP => SP 681 INTEGER, INTENT(OUT), OPTIONAL :: INFO 682 REAL(WP), INTENT(INOUT) :: A(:,:) 683 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 684 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 685 END SUBROUTINE SGEEV_F95 686 687 SUBROUTINE DGEEV_F95( A, WR, WI, VL, VR, INFO ) 688 USE LA_PRECISION, ONLY: WP => DP 689 INTEGER, INTENT(OUT), OPTIONAL :: INFO 690 REAL(WP), INTENT(INOUT) :: A(:,:) 691 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 692 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 693 END SUBROUTINE DGEEV_F95 694 695 SUBROUTINE CGEEV_F95( A, W, VL, VR, INFO ) 696 USE LA_PRECISION, ONLY: WP => SP 697 INTEGER, INTENT(OUT), OPTIONAL :: INFO 698 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 699 COMPLEX(WP), INTENT(OUT) :: W(:) 700 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 701 END SUBROUTINE CGEEV_F95 702 703 SUBROUTINE ZGEEV_F95( A, W, VL, VR, INFO ) 704 USE LA_PRECISION, ONLY: WP => DP 705 INTEGER, INTENT(OUT), OPTIONAL :: INFO 706 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 707 COMPLEX(WP), INTENT(OUT) :: W(:) 708 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 709 END SUBROUTINE ZGEEV_F95 710 711 END INTERFACE 712 713 INTERFACE LA_GEESX 714 715 SUBROUTINE SGEESX_F95( A, WR, WI, VS, SELECT, SDIM, RCONDE, & 716 & RCONDV, INFO ) 717 USE LA_PRECISION, ONLY: WP => SP 718! USE LA_EXTERNAL 719 INTERFACE 720 LOGICAL FUNCTION SELECT(WR, WI) 721 USE LA_PRECISION, ONLY: WP => SP 722 REAL(WP), INTENT(IN) :: WR, WI 723 END FUNCTION SELECT 724 END INTERFACE 725 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 726 REAL(WP), INTENT(INOUT) :: A(:,:) 727 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 728 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE, RCONDV 729 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 730 OPTIONAL :: SELECT 731 END SUBROUTINE SGEESX_F95 732 733 SUBROUTINE DGEESX_F95( A, WR, WI, VS, SELECT, SDIM, RCONDE, & 734 & RCONDV, INFO ) 735 USE LA_PRECISION, ONLY: WP => DP 736! USE LA_EXTERNAL 737 INTERFACE 738 LOGICAL FUNCTION SELECT(WR, WI) 739 USE LA_PRECISION, ONLY: WP => DP 740 REAL(WP), INTENT(IN) :: WR, WI 741 END FUNCTION SELECT 742 END INTERFACE 743 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 744 REAL(WP), INTENT(INOUT) :: A(:,:) 745 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 746 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE, RCONDV 747 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 748 OPTIONAL :: SELECT 749 END SUBROUTINE DGEESX_F95 750 751 SUBROUTINE CGEESX_F95( A, W, VS, SELECT, SDIM, RCONDE, RCONDV, & 752 & INFO ) 753 USE LA_PRECISION, ONLY: WP => SP 754 INTERFACE 755 LOGICAL FUNCTION SELECT(W) 756 USE LA_PRECISION, ONLY: WP => SP 757 COMPLEX(WP), INTENT(IN) :: W 758 END FUNCTION SELECT 759 END INTERFACE 760 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 761 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 762 COMPLEX(WP), INTENT(OUT) :: W(:) 763 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE, RCONDV 764 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 765 OPTIONAL :: SELECT 766 END SUBROUTINE CGEESX_F95 767 768 SUBROUTINE ZGEESX_F95( A, W, VS, SELECT, SDIM, RCONDE, RCONDV, & 769 & INFO ) 770 USE LA_PRECISION, ONLY: WP => DP 771 INTERFACE 772 LOGICAL FUNCTION SELECT(W) 773 USE LA_PRECISION, ONLY: WP => DP 774 COMPLEX(WP), INTENT(IN) :: W 775 END FUNCTION SELECT 776 END INTERFACE 777 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 778 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 779 COMPLEX(WP), INTENT(OUT) :: W(:) 780 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE, RCONDV 781 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 782 OPTIONAL :: SELECT 783 END SUBROUTINE ZGEESX_F95 784 785 END INTERFACE 786 787 INTERFACE LA_GGESX 788 789 SUBROUTINE SGGESX_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 790 & SELECT, SDIM, RCONDE, RCONDV, INFO ) 791 USE LA_PRECISION, ONLY: WP => SP 792 INTEGER, INTENT(OUT), OPTIONAL :: INFO 793 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 794 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 795 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 796 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 797 INTERFACE 798 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 799 USE LA_PRECISION, ONLY: WP => SP 800 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 801 END FUNCTION SELECT 802 END INTERFACE 803 OPTIONAL :: SELECT 804 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE(2), RCONDV(2) 805 END SUBROUTINE SGGESX_F95 806 807 SUBROUTINE DGGESX_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 808 & SELECT, SDIM, RCONDE, RCONDV, INFO ) 809 USE LA_PRECISION, ONLY: WP => DP 810 INTEGER, INTENT(OUT), OPTIONAL :: INFO 811 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 812 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 813 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 814 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 815 INTERFACE 816 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 817 USE LA_PRECISION, ONLY: WP => DP 818 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 819 END FUNCTION SELECT 820 END INTERFACE 821 OPTIONAL :: SELECT 822 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE(2), RCONDV(2) 823 END SUBROUTINE DGGESX_F95 824 825 SUBROUTINE CGGESX_F95( A, B, ALPHA, BETA, VSL, VSR, SELECT, SDIM,& 826 & RCONDE, RCONDV, INFO ) 827 USE LA_PRECISION, ONLY: WP => SP 828 INTEGER, INTENT(OUT), OPTIONAL :: INFO 829 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 830 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 831 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 832 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 833 INTERFACE 834 LOGICAL FUNCTION SELECT(ALPHA, BETA) 835 USE LA_PRECISION, ONLY: WP => SP 836 COMPLEX(WP), INTENT(IN) :: ALPHA, BETA 837 END FUNCTION SELECT 838 END INTERFACE 839 OPTIONAL :: SELECT 840 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE(2), RCONDV(2) 841 END SUBROUTINE CGGESX_F95 842 843 SUBROUTINE ZGGESX_F95( A, B, ALPHA, BETA, VSL, VSR, SELECT, SDIM,& 844 & RCONDE, RCONDV, INFO ) 845 USE LA_PRECISION, ONLY: WP => DP 846 INTEGER, INTENT(OUT), OPTIONAL :: INFO 847 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 848 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 849 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 850 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 851 INTERFACE 852 LOGICAL FUNCTION SELECT(ALPHA, BETA) 853 USE LA_PRECISION, ONLY: WP => DP 854 COMPLEX(WP), INTENT(IN) :: ALPHA, BETA 855 END FUNCTION SELECT 856 END INTERFACE 857 OPTIONAL :: SELECT 858 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE(2), RCONDV(2) 859 END SUBROUTINE ZGGESX_F95 860 861 END INTERFACE 862 863 864 INTERFACE LA_GGES 865 866 SUBROUTINE SGGES_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 867 & SELECT, SDIM, INFO ) 868 USE LA_PRECISION, ONLY: WP => SP 869 INTEGER, INTENT(OUT), OPTIONAL :: INFO 870 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 871 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 872 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 873 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 874 INTERFACE 875 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 876 USE LA_PRECISION, ONLY: WP => SP 877 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 878 END FUNCTION SELECT 879 END INTERFACE 880 OPTIONAL :: SELECT 881 END SUBROUTINE SGGES_F95 882 883 SUBROUTINE DGGES_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 884 & SELECT, SDIM, INFO ) 885 USE LA_PRECISION, ONLY: WP => DP 886 INTEGER, INTENT(OUT), OPTIONAL :: INFO 887 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 888 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 889 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 890 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 891 INTERFACE 892 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 893 USE LA_PRECISION, ONLY: WP => DP 894 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 895 END FUNCTION SELECT 896 END INTERFACE 897 OPTIONAL :: SELECT 898 END SUBROUTINE DGGES_F95 899 900 SUBROUTINE CGGES_F95( A, B, ALPHA, BETA, VSL, VSR, SELECT, SDIM, & 901 & INFO ) 902 USE LA_PRECISION, ONLY: WP => SP 903 INTEGER, INTENT(OUT), OPTIONAL :: INFO 904 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 905 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 906 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 907 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 908 INTERFACE 909 LOGICAL FUNCTION SELECT(ALPHA, BETA) 910 USE LA_PRECISION, ONLY: WP => SP 911 COMPLEX(WP), INTENT(IN) :: ALPHA, BETA 912 END FUNCTION SELECT 913 END INTERFACE 914 OPTIONAL :: SELECT 915 END SUBROUTINE CGGES_F95 916 917 SUBROUTINE ZGGES_F95( A, B, ALPHA, BETA, VSL, VSR, SELECT, SDIM, & 918 & INFO ) 919 USE LA_PRECISION, ONLY: WP => DP 920 INTEGER, INTENT(OUT), OPTIONAL :: INFO 921 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 922 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 923 COMPLEX(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 924 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 925 INTERFACE 926 LOGICAL FUNCTION SELECT(ALPHA, BETA) 927 USE LA_PRECISION, ONLY: WP => DP 928 COMPLEX(WP), INTENT(IN) :: ALPHA, BETA 929 END FUNCTION SELECT 930 END INTERFACE 931 OPTIONAL :: SELECT 932 END SUBROUTINE ZGGES_F95 933 934 END INTERFACE 935 936 INTERFACE LA_GEES 937 938 SUBROUTINE SGEES_F95( A, WR, WI, VS, SELECT, SDIM, INFO ) 939 USE LA_PRECISION, ONLY: WP => SP 940! USE LA_EXTERNAL, ONLY: SELECT 941 INTERFACE 942 LOGICAL FUNCTION SELECT(WR, WI) 943 USE LA_PRECISION, ONLY: WP => SP 944 REAL(WP), INTENT(IN) :: WR, WI 945 END FUNCTION SELECT 946 END INTERFACE 947 948 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 949 REAL(WP), INTENT(INOUT) :: A(:,:) 950 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 951 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 952 OPTIONAL :: SELECT 953 END SUBROUTINE SGEES_F95 954 955 SUBROUTINE DGEES_F95( A, WR, WI, VS, SELECT, SDIM, INFO ) 956 USE LA_PRECISION, ONLY: WP => DP 957! USE LA_EXTERNAL, ONLY: SELECT 958 INTERFACE 959 LOGICAL FUNCTION SELECT(WR, WI) 960 USE LA_PRECISION, ONLY: WP => DP 961 REAL(WP), INTENT(IN) :: WR, WI 962 END FUNCTION SELECT 963 END INTERFACE 964 965 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 966 REAL(WP), INTENT(INOUT) :: A(:,:) 967 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 968 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 969 OPTIONAL :: SELECT 970 END SUBROUTINE DGEES_F95 971 972 SUBROUTINE CGEES_F95( A, W, VS, SELECT, SDIM, INFO ) 973 USE LA_PRECISION, ONLY: WP => SP 974 INTERFACE 975 LOGICAL FUNCTION SELECT(W) 976 USE LA_PRECISION, ONLY: WP => SP 977 COMPLEX(WP), INTENT(IN) :: W 978 END FUNCTION SELECT 979 END INTERFACE 980 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 981 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 982 COMPLEX(WP), INTENT(OUT) :: W(:) 983 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 984 OPTIONAL :: SELECT 985 END SUBROUTINE CGEES_F95 986 987 SUBROUTINE ZGEES_F95( A, W, VS, SELECT, SDIM, INFO ) 988 USE LA_PRECISION, ONLY: WP => DP 989 INTERFACE 990 LOGICAL FUNCTION SELECT(W) 991 USE LA_PRECISION, ONLY: WP => DP 992 COMPLEX(WP), INTENT(IN) :: W 993 END FUNCTION SELECT 994 END INTERFACE 995 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 996 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 997 COMPLEX(WP), INTENT(OUT) :: W(:) 998 COMPLEX(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 999 OPTIONAL :: SELECT 1000 END SUBROUTINE ZGEES_F95 1001 1002 END INTERFACE 1003 1004 INTERFACE LA_STEVR 1005 1006 SUBROUTINE SSTEVR_F95( D, E, W, Z, VL, VU, IL, IU, M, ISUPPZ, & 1007 & ABSTOL, INFO ) 1008 USE LA_PRECISION, ONLY: WP => SP 1009 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1010 REAL(WP), INTENT(OUT) :: W(:) 1011 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1012 REAL(WP), INTENT(IN), OPTIONAL:: ABSTOL, VL, VU 1013 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1014 INTEGER, INTENT(OUT), OPTIONAL :: M 1015 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1016 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 1017 END SUBROUTINE SSTEVR_F95 1018 1019 SUBROUTINE DSTEVR_F95( D, E, W, Z, VL, VU, IL, IU, M, ISUPPZ, & 1020 & ABSTOL, INFO ) 1021 USE LA_PRECISION, ONLY: WP => DP 1022 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1023 REAL(WP), INTENT(OUT) :: W(:) 1024 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1025 REAL(WP), INTENT(IN), OPTIONAL:: ABSTOL, VL, VU 1026 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1027 INTEGER, INTENT(OUT), OPTIONAL :: M 1028 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1029 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 1030 END SUBROUTINE DSTEVR_F95 1031 1032 END INTERFACE 1033 1034 INTERFACE LA_STEVX 1035 1036 SUBROUTINE SSTEVX_F95( D, E, W, Z, VL, VU, IL, IU, M, IFAIL, & 1037 & ABSTOL, INFO ) 1038 USE LA_PRECISION, ONLY: WP => SP 1039 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1040 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1041 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1042 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1043 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1044 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1045 REAL(WP), INTENT(OUT) :: W(:) 1046 END SUBROUTINE SSTEVX_F95 1047 1048 SUBROUTINE DSTEVX_F95( D, E, W, Z, VL, VU, IL, IU, M, IFAIL, & 1049 & ABSTOL, INFO ) 1050 USE LA_PRECISION, ONLY: WP => DP 1051 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1052 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1053 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1054 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1055 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1056 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1057 REAL(WP), INTENT(OUT) :: W(:) 1058 END SUBROUTINE DSTEVX_F95 1059 1060 END INTERFACE 1061 1062 INTERFACE LA_STEVD 1063 1064 SUBROUTINE SSTEVD_F95( D, E, Z, INFO ) 1065 USE LA_PRECISION, ONLY: WP => SP 1066 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1067 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1068 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1069 END SUBROUTINE SSTEVD_F95 1070 1071 SUBROUTINE DSTEVD_F95( D, E, Z, INFO ) 1072 USE LA_PRECISION, ONLY: WP => DP 1073 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1074 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1075 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1076 END SUBROUTINE DSTEVD_F95 1077 1078 END INTERFACE 1079 1080 INTERFACE LA_STEV 1081 1082 SUBROUTINE SSTEV_F95( D, E, Z, INFO ) 1083 USE LA_PRECISION, ONLY: WP => SP 1084 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1085 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1086 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1087 END SUBROUTINE SSTEV_F95 1088 1089 SUBROUTINE DSTEV_F95( D, E, Z, INFO ) 1090 USE LA_PRECISION, ONLY: WP => DP 1091 REAL(WP), INTENT(INOUT) :: D(:), E(:) 1092 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1093 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1094 END SUBROUTINE DSTEV_F95 1095 1096 END INTERFACE 1097 1098 INTERFACE LA_SBEVX 1099 1100 SUBROUTINE SSBEVX_F95( AB, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1101 & Q, ABSTOL, INFO ) 1102 USE LA_PRECISION, ONLY: WP => SP 1103 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1104 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1105 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1106 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1107 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1108 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:), Q(:,:) 1109 REAL(WP), INTENT(INOUT) :: AB(:,:) 1110 REAL(WP), INTENT(OUT) :: W(:) 1111 END SUBROUTINE SSBEVX_F95 1112 1113 SUBROUTINE DSBEVX_F95( AB, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1114 & Q, ABSTOL, INFO ) 1115 USE LA_PRECISION, ONLY: WP => DP 1116 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1117 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1118 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1119 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1120 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1121 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:), Q(:,:) 1122 REAL(WP), INTENT(INOUT) :: AB(:,:) 1123 REAL(WP), INTENT(OUT) :: W(:) 1124 END SUBROUTINE DSBEVX_F95 1125 1126 END INTERFACE 1127 1128 INTERFACE LA_HBEVX 1129 1130 SUBROUTINE CHBEVX_F95( AB, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1131 & Q, ABSTOL, INFO ) 1132 USE LA_PRECISION, ONLY: WP => SP 1133 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1134 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1135 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1136 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1137 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1138 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:), Q(:,:) 1139 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1140 REAL(WP), INTENT(OUT) :: W(:) 1141 END SUBROUTINE CHBEVX_F95 1142 1143 SUBROUTINE ZHBEVX_F95( AB, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1144 & Q, ABSTOL, INFO ) 1145 USE LA_PRECISION, ONLY: WP => DP 1146 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1147 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1148 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1149 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1150 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1151 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:), Q(:,:) 1152 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1153 REAL(WP), INTENT(OUT) :: W(:) 1154 END SUBROUTINE ZHBEVX_F95 1155 1156 END INTERFACE 1157 1158 INTERFACE LA_SBEVD 1159 1160 SUBROUTINE SSBEVD_F95( AB, W, UPLO, Z, INFO ) 1161 USE LA_PRECISION, ONLY: WP => SP 1162 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1163 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1164 REAL(WP), INTENT(INOUT) :: AB(:,:) 1165 REAL(WP), INTENT(OUT) :: W(:) 1166 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1167 END SUBROUTINE SSBEVD_F95 1168 1169 SUBROUTINE DSBEVD_F95( AB, W, UPLO, Z, INFO ) 1170 USE LA_PRECISION, ONLY: WP => DP 1171 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1172 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1173 REAL(WP), INTENT(INOUT) :: AB(:,:) 1174 REAL(WP), INTENT(OUT) :: W(:) 1175 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1176 END SUBROUTINE DSBEVD_F95 1177 1178 END INTERFACE 1179 1180 INTERFACE LA_HBEVD 1181 1182 SUBROUTINE CHBEVD_F95( AB, W, UPLO, Z, INFO ) 1183 USE LA_PRECISION, ONLY: WP => SP 1184 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1185 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1186 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1187 REAL(WP), INTENT(OUT) :: W(:) 1188 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1189 END SUBROUTINE CHBEVD_F95 1190 1191 SUBROUTINE ZHBEVD_F95( AB, W, UPLO, Z, INFO ) 1192 USE LA_PRECISION, ONLY: WP => DP 1193 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1194 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1195 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1196 REAL(WP), INTENT(OUT) :: W(:) 1197 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1198 END SUBROUTINE ZHBEVD_F95 1199 1200 END INTERFACE 1201 1202 INTERFACE LA_SBEV 1203 1204 SUBROUTINE SSBEV_F95( AB, W, UPLO, Z, INFO ) 1205 USE LA_PRECISION, ONLY: WP => SP 1206 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1207 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1208 REAL(WP), INTENT(INOUT) :: AB(:,:) 1209 REAL(WP), INTENT(OUT) :: W(:) 1210 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1211 END SUBROUTINE SSBEV_F95 1212 1213 SUBROUTINE DSBEV_F95( AB, W, UPLO, Z, INFO ) 1214 USE LA_PRECISION, ONLY: WP => DP 1215 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1216 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1217 REAL(WP), INTENT(INOUT) :: AB(:,:) 1218 REAL(WP), INTENT(OUT) :: W(:) 1219 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1220 END SUBROUTINE DSBEV_F95 1221 1222 END INTERFACE 1223 1224 INTERFACE LA_HBEV 1225 1226 SUBROUTINE CHBEV_F95( AB, W, UPLO, Z, INFO ) 1227 USE LA_PRECISION, ONLY: WP => SP 1228 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1229 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1230 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1231 REAL(WP), INTENT(OUT) :: W(:) 1232 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1233 END SUBROUTINE CHBEV_F95 1234 1235 SUBROUTINE ZHBEV_F95( AB, W, UPLO, Z, INFO ) 1236 USE LA_PRECISION, ONLY: WP => DP 1237 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1238 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1239 COMPLEX(WP), INTENT(INOUT) :: AB(:,:) 1240 REAL(WP), INTENT(OUT) :: W(:) 1241 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1242 END SUBROUTINE ZHBEV_F95 1243 1244 END INTERFACE 1245 1246 INTERFACE LA_SPEVX 1247 1248 SUBROUTINE SSPEVX_F95( AP, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1249 & ABSTOL, INFO ) 1250 USE LA_PRECISION, ONLY: WP => SP 1251 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1252 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1253 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1254 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1255 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1256 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1257 REAL(WP), INTENT(INOUT) :: AP(:) 1258 REAL(WP), INTENT(OUT) :: W(:) 1259 END SUBROUTINE SSPEVX_F95 1260 1261 SUBROUTINE DSPEVX_F95( AP, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1262 & ABSTOL, INFO ) 1263 USE LA_PRECISION, ONLY: WP => DP 1264 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1265 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1266 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1267 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1268 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1269 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1270 REAL(WP), INTENT(INOUT) :: AP(:) 1271 REAL(WP), INTENT(OUT) :: W(:) 1272 END SUBROUTINE DSPEVX_F95 1273 1274 END INTERFACE 1275 1276 INTERFACE LA_HPEVX 1277 1278 SUBROUTINE CHPEVX_F95( AP, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1279 & ABSTOL, INFO ) 1280 USE LA_PRECISION, ONLY: WP => SP 1281 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1282 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1283 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1284 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1285 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1286 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1287 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1288 REAL(WP), INTENT(OUT) :: W(:) 1289 END SUBROUTINE CHPEVX_F95 1290 1291 SUBROUTINE ZHPEVX_F95( AP, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 1292 & ABSTOL, INFO ) 1293 USE LA_PRECISION, ONLY: WP => DP 1294 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1295 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1296 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1297 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1298 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 1299 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1300 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1301 REAL(WP), INTENT(OUT) :: W(:) 1302 END SUBROUTINE ZHPEVX_F95 1303 1304 END INTERFACE 1305 1306 INTERFACE LA_SPEVD 1307 1308 SUBROUTINE SSPEVD_F95( AP, W, UPLO, Z, INFO ) 1309 USE LA_PRECISION, ONLY: WP => SP 1310 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1311 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1312 REAL(WP), INTENT(INOUT) :: AP(:) 1313 REAL(WP), INTENT(OUT) :: W(:) 1314 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1315 END SUBROUTINE SSPEVD_F95 1316 1317 SUBROUTINE DSPEVD_F95( AP, W, UPLO, Z, INFO ) 1318 USE LA_PRECISION, ONLY: WP => DP 1319 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1320 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1321 REAL(WP), INTENT(INOUT) :: AP(:) 1322 REAL(WP), INTENT(OUT) :: W(:) 1323 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1324 END SUBROUTINE DSPEVD_F95 1325 1326 END INTERFACE 1327 1328 INTERFACE LA_HPEVD 1329 1330 SUBROUTINE CHPEVD_F95( AP, W, UPLO, Z, INFO ) 1331 USE LA_PRECISION, ONLY: WP => SP 1332 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1333 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1334 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1335 REAL(WP), INTENT(OUT) :: W(:) 1336 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1337 END SUBROUTINE CHPEVD_F95 1338 1339 SUBROUTINE ZHPEVD_F95( AP, W, UPLO, Z, INFO ) 1340 USE LA_PRECISION, ONLY: WP => DP 1341 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1342 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1343 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1344 REAL(WP), INTENT(OUT) :: W(:) 1345 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1346 END SUBROUTINE ZHPEVD_F95 1347 1348 END INTERFACE 1349 1350 INTERFACE LA_SPEV 1351 1352 SUBROUTINE SSPEV_F95( AP, W, UPLO, Z, INFO ) 1353 USE LA_PRECISION, ONLY: WP => SP 1354 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1355 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1356 REAL(WP), INTENT(INOUT) :: AP(:) 1357 REAL(WP), INTENT(OUT) :: W(:) 1358 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1359 END SUBROUTINE SSPEV_F95 1360 1361 SUBROUTINE DSPEV_F95( AP, W, UPLO, Z, INFO ) 1362 USE LA_PRECISION, ONLY: WP => DP 1363 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1364 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1365 REAL(WP), INTENT(INOUT) :: AP(:) 1366 REAL(WP), INTENT(OUT) :: W(:) 1367 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1368 END SUBROUTINE DSPEV_F95 1369 1370 END INTERFACE 1371 1372 INTERFACE LA_HPEV 1373 1374 SUBROUTINE CHPEV_F95( AP, W, UPLO, Z, INFO ) 1375 USE LA_PRECISION, ONLY: WP => SP 1376 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1377 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1378 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1379 REAL(WP), INTENT(OUT) :: W(:) 1380 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1381 END SUBROUTINE CHPEV_F95 1382 1383 SUBROUTINE ZHPEV_F95( AP, W, UPLO, Z, INFO ) 1384 USE LA_PRECISION, ONLY: WP => DP 1385 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1386 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1387 COMPLEX(WP), INTENT(INOUT) :: AP(:) 1388 REAL(WP), INTENT(OUT) :: W(:) 1389 COMPLEX(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 1390 END SUBROUTINE ZHPEV_F95 1391 1392 END INTERFACE 1393 1394 INTERFACE LA_GGGLM 1395 1396 SUBROUTINE SGGGLM_F95( A, B, D, X, Y, INFO ) 1397 USE LA_PRECISION, ONLY: WP => SP 1398 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), D(:) 1399 REAL(WP), INTENT( OUT ) :: X(:), Y(:) 1400 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1401 END SUBROUTINE SGGGLM_F95 1402 1403 SUBROUTINE DGGGLM_F95( A, B, D, X, Y, INFO ) 1404 USE LA_PRECISION, ONLY: WP => DP 1405 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), D(:) 1406 REAL(WP), INTENT( OUT ) :: X(:), Y(:) 1407 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1408 END SUBROUTINE DGGGLM_F95 1409 1410 SUBROUTINE CGGGLM_F95( A, B, D, X, Y, INFO ) 1411 USE LA_PRECISION, ONLY: WP => SP 1412 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), D(:) 1413 COMPLEX(WP), INTENT( OUT ) :: X(:), Y(:) 1414 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1415 END SUBROUTINE CGGGLM_F95 1416 1417 SUBROUTINE ZGGGLM_F95( A, B, D, X, Y, INFO ) 1418 USE LA_PRECISION, ONLY: WP => DP 1419 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), D(:) 1420 COMPLEX(WP), INTENT( OUT ) :: X(:), Y(:) 1421 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1422 END SUBROUTINE ZGGGLM_F95 1423 1424 END INTERFACE 1425 1426 INTERFACE LA_GGLSE 1427 1428 SUBROUTINE SGGLSE_F95( A, B, C, D, X, INFO ) 1429 USE LA_PRECISION, ONLY: WP => SP 1430 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), C(:), D(:) 1431 REAL(WP), INTENT( OUT ) :: X(:) 1432 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1433 END SUBROUTINE SGGLSE_F95 1434 1435 SUBROUTINE DGGLSE_F95( A, B, C, D, X, INFO ) 1436 USE LA_PRECISION, ONLY: WP => DP 1437 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), C(:), D(:) 1438 REAL(WP), INTENT( OUT ) :: X(:) 1439 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1440 END SUBROUTINE DGGLSE_F95 1441 1442 SUBROUTINE CGGLSE_F95( A, B, C, D, X, INFO ) 1443 USE LA_PRECISION, ONLY: WP => SP 1444 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), C(:), D(:) 1445 COMPLEX(WP), INTENT( OUT ) :: X(:) 1446 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1447 END SUBROUTINE CGGLSE_F95 1448 1449 SUBROUTINE ZGGLSE_F95( A, B, C, D, X, INFO ) 1450 USE LA_PRECISION, ONLY: WP => DP 1451 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), C(:), D(:) 1452 COMPLEX(WP), INTENT( OUT ) :: X(:) 1453 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1454 END SUBROUTINE ZGGLSE_F95 1455 1456 END INTERFACE 1457 1458 INTERFACE LA_GELSY 1459 1460 SUBROUTINE SGELSY_F95( A, B, RANK, JPVT, RCOND, INFO ) 1461 USE LA_PRECISION, ONLY: WP => SP 1462 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1463 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1464 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1465 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1466 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1467 END SUBROUTINE SGELSY_F95 1468 1469 SUBROUTINE SGELSY1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1470 USE LA_PRECISION, ONLY: WP => SP 1471 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 1472 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1473 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1474 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1475 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1476 END SUBROUTINE SGELSY1_F95 1477 1478 SUBROUTINE DGELSY_F95( A, B, RANK, JPVT, RCOND, INFO ) 1479 USE LA_PRECISION, ONLY: WP => DP 1480 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1481 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1482 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1483 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1484 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1485 END SUBROUTINE DGELSY_F95 1486 1487 SUBROUTINE DGELSY1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1488 USE LA_PRECISION, ONLY: WP => DP 1489 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 1490 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1491 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1492 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1493 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1494 END SUBROUTINE DGELSY1_F95 1495 1496 SUBROUTINE CGELSY_F95( A, B, RANK, JPVT, RCOND, INFO ) 1497 USE LA_PRECISION, ONLY: WP => SP 1498 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1499 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1500 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1501 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1502 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1503 END SUBROUTINE CGELSY_F95 1504 1505 SUBROUTINE CGELSY1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1506 USE LA_PRECISION, ONLY: WP => SP 1507 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 1508 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1509 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1510 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1511 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1512 END SUBROUTINE CGELSY1_F95 1513 1514 SUBROUTINE ZGELSY_F95( A, B, RANK, JPVT, RCOND, INFO ) 1515 USE LA_PRECISION, ONLY: WP => DP 1516 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1517 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1518 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1519 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1520 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1521 END SUBROUTINE ZGELSY_F95 1522 1523 SUBROUTINE ZGELSY1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1524 USE LA_PRECISION, ONLY: WP => DP 1525 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 1526 INTEGER, INTENT(OUT), OPTIONAL :: RANK 1527 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 1528 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1529 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1530 END SUBROUTINE ZGELSY1_F95 1531 1532 END INTERFACE 1533 1534 INTERFACE LA_GELSD 1535 1536 SUBROUTINE SGELSD_F95( A, B, RANK, S, RCOND, INFO ) 1537 USE LA_PRECISION, ONLY: WP => SP 1538 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1539 INTEGER, INTENT(IN), OPTIONAL :: RANK 1540 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1541 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1542 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1543 END SUBROUTINE SGELSD_F95 1544 1545 SUBROUTINE SGELSD1_F95( A, B, RANK, S, RCOND, INFO ) 1546 USE LA_PRECISION, ONLY: WP => SP 1547 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1548 INTEGER, INTENT(IN), OPTIONAL :: RANK 1549 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1550 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1551 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1552 END SUBROUTINE SGELSD1_F95 1553 1554 SUBROUTINE DGELSD_F95( A, B, RANK, S, RCOND, INFO ) 1555 USE LA_PRECISION, ONLY: WP => DP 1556 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1557 INTEGER, INTENT(IN), OPTIONAL :: RANK 1558 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1559 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1560 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1561 END SUBROUTINE DGELSD_F95 1562 1563 SUBROUTINE DGELSD1_F95( A, B, RANK, S, RCOND, INFO ) 1564 USE LA_PRECISION, ONLY: WP => DP 1565 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1566 INTEGER, INTENT(IN), OPTIONAL :: RANK 1567 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1568 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1569 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1570 END SUBROUTINE DGELSD1_F95 1571 1572 SUBROUTINE CGELSD_F95( A, B, RANK, S, RCOND, INFO ) 1573 USE LA_PRECISION, ONLY: WP => SP 1574 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1575 INTEGER, INTENT(IN), OPTIONAL :: RANK 1576 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1577 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1578 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1579 END SUBROUTINE CGELSD_F95 1580 1581 SUBROUTINE CGELSD1_F95( A, B, RANK, S, RCOND, INFO ) 1582 USE LA_PRECISION, ONLY: WP => SP 1583 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1584 INTEGER, INTENT(IN), OPTIONAL :: RANK 1585 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1586 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1587 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1588 END SUBROUTINE CGELSD1_F95 1589 1590 SUBROUTINE ZGELSD_F95( A, B, RANK, S, RCOND, INFO ) 1591 USE LA_PRECISION, ONLY: WP => DP 1592 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1593 INTEGER, INTENT(IN), OPTIONAL :: RANK 1594 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1595 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1596 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1597 END SUBROUTINE ZGELSD_F95 1598 1599 SUBROUTINE ZGELSD1_F95( A, B, RANK, S, RCOND, INFO ) 1600 USE LA_PRECISION, ONLY: WP => DP 1601 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1602 INTEGER, INTENT(IN), OPTIONAL :: RANK 1603 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1604 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1605 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1606 END SUBROUTINE ZGELSD1_F95 1607 1608 END INTERFACE 1609 1610 INTERFACE LA_GELSX 1611 1612 SUBROUTINE SGELSX_F95( A, B, RANK, JPVT, RCOND, INFO ) 1613 USE LA_PRECISION, ONLY: WP => SP 1614 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1615 INTEGER, INTENT(IN), OPTIONAL :: RANK 1616 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1617 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1618 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1619 END SUBROUTINE SGELSX_F95 1620 1621 SUBROUTINE SGELSX1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1622 USE LA_PRECISION, ONLY: WP => SP 1623 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1624 INTEGER, INTENT(IN), OPTIONAL :: RANK 1625 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1626 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1627 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1628 END SUBROUTINE SGELSX1_F95 1629 1630 SUBROUTINE DGELSX_F95( A, B, RANK, JPVT, RCOND, INFO ) 1631 USE LA_PRECISION, ONLY: WP => DP 1632 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1633 INTEGER, INTENT(IN), OPTIONAL :: RANK 1634 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1635 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1636 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1637 END SUBROUTINE DGELSX_F95 1638 1639 SUBROUTINE DGELSX1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1640 USE LA_PRECISION, ONLY: WP => DP 1641 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1642 INTEGER, INTENT(IN), OPTIONAL :: RANK 1643 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1644 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1645 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1646 END SUBROUTINE DGELSX1_F95 1647 1648 SUBROUTINE CGELSX_F95( A, B, RANK, JPVT, RCOND, INFO ) 1649 USE LA_PRECISION, ONLY: WP => SP 1650 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1651 INTEGER, INTENT(IN), OPTIONAL :: RANK 1652 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1653 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1654 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1655 END SUBROUTINE CGELSX_F95 1656 1657 SUBROUTINE CGELSX1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1658 USE LA_PRECISION, ONLY: WP => SP 1659 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1660 INTEGER, INTENT(IN), OPTIONAL :: RANK 1661 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1662 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1663 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1664 END SUBROUTINE CGELSX1_F95 1665 1666 SUBROUTINE ZGELSX_F95( A, B, RANK, JPVT, RCOND, INFO ) 1667 USE LA_PRECISION, ONLY: WP => DP 1668 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1669 INTEGER, INTENT(IN), OPTIONAL :: RANK 1670 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1671 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1672 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1673 END SUBROUTINE ZGELSX_F95 1674 1675 SUBROUTINE ZGELSX1_F95( A, B, RANK, JPVT, RCOND, INFO ) 1676 USE LA_PRECISION, ONLY: WP => DP 1677 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1678 INTEGER, INTENT(IN), OPTIONAL :: RANK 1679 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 1680 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1681 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1682 END SUBROUTINE ZGELSX1_F95 1683 1684 END INTERFACE 1685 1686 INTERFACE LA_GELSS 1687 1688 SUBROUTINE SGELSS_F95( A, B, RANK, S, RCOND, INFO ) 1689 USE LA_PRECISION, ONLY: WP => SP 1690 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1691 INTEGER, INTENT(IN), OPTIONAL :: RANK 1692 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1693 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1694 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1695 END SUBROUTINE SGELSS_F95 1696 1697 SUBROUTINE SGELSS1_F95( A, B, RANK, S, RCOND, INFO ) 1698 USE LA_PRECISION, ONLY: WP => SP 1699 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1700 INTEGER, INTENT(IN), OPTIONAL :: RANK 1701 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1702 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1703 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1704 END SUBROUTINE SGELSS1_F95 1705 1706 SUBROUTINE DGELSS_F95( A, B, RANK, S, RCOND, INFO ) 1707 USE LA_PRECISION, ONLY: WP => DP 1708 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1709 INTEGER, INTENT(IN), OPTIONAL :: RANK 1710 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1711 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1712 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1713 END SUBROUTINE DGELSS_F95 1714 1715 SUBROUTINE DGELSS1_F95( A, B, RANK, S, RCOND, INFO ) 1716 USE LA_PRECISION, ONLY: WP => DP 1717 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1718 INTEGER, INTENT(IN), OPTIONAL :: RANK 1719 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1720 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1721 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1722 END SUBROUTINE DGELSS1_F95 1723 1724 SUBROUTINE CGELSS_F95( A, B, RANK, S, RCOND, INFO ) 1725 USE LA_PRECISION, ONLY: WP => SP 1726 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1727 INTEGER, INTENT(IN), OPTIONAL :: RANK 1728 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1729 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1730 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1731 END SUBROUTINE CGELSS_F95 1732 1733 SUBROUTINE CGELSS1_F95( A, B, RANK, S, RCOND, INFO ) 1734 USE LA_PRECISION, ONLY: WP => SP 1735 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1736 INTEGER, INTENT(IN), OPTIONAL :: RANK 1737 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1738 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1739 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1740 END SUBROUTINE CGELSS1_F95 1741 1742 SUBROUTINE ZGELSS_F95( A, B, RANK, S, RCOND, INFO ) 1743 USE LA_PRECISION, ONLY: WP => DP 1744 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1745 INTEGER, INTENT(IN), OPTIONAL :: RANK 1746 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1747 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1748 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1749 END SUBROUTINE ZGELSS_F95 1750 1751 SUBROUTINE ZGELSS1_F95( A, B, RANK, S, RCOND, INFO ) 1752 USE LA_PRECISION, ONLY: WP => DP 1753 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1754 INTEGER, INTENT(IN), OPTIONAL :: RANK 1755 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 1756 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 1757 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1758 END SUBROUTINE ZGELSS1_F95 1759 1760 END INTERFACE 1761 1762 INTERFACE LA_GELS 1763 1764 SUBROUTINE SGELS_F95( A, B, TRANS, INFO ) 1765 USE LA_PRECISION, ONLY: WP => SP 1766 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1767 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1768 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1769 END SUBROUTINE SGELS_F95 1770 1771 SUBROUTINE SGELS1_F95( A, B, TRANS, INFO ) 1772 USE LA_PRECISION, ONLY: WP => SP 1773 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1774 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1775 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1776 END SUBROUTINE SGELS1_F95 1777 1778 SUBROUTINE DGELS_F95( A, B, TRANS, INFO ) 1779 USE LA_PRECISION, ONLY: WP => DP 1780 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1781 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1782 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1783 END SUBROUTINE DGELS_F95 1784 1785 SUBROUTINE DGELS1_F95( A, B, TRANS, INFO ) 1786 USE LA_PRECISION, ONLY: WP => DP 1787 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1788 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1789 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1790 END SUBROUTINE DGELS1_F95 1791 1792 SUBROUTINE CGELS_F95( A, B, TRANS, INFO ) 1793 USE LA_PRECISION, ONLY: WP => SP 1794 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1795 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1796 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1797 END SUBROUTINE CGELS_F95 1798 1799 SUBROUTINE CGELS1_F95( A, B, TRANS, INFO ) 1800 USE LA_PRECISION, ONLY: WP => SP 1801 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1802 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1803 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1804 END SUBROUTINE CGELS1_F95 1805 1806 SUBROUTINE ZGELS_F95( A, B, TRANS, INFO ) 1807 USE LA_PRECISION, ONLY: WP => DP 1808 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1809 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1810 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 1811 END SUBROUTINE ZGELS_F95 1812 1813 SUBROUTINE ZGELS1_F95( A, B, TRANS, INFO ) 1814 USE LA_PRECISION, ONLY: WP => DP 1815 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1816 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1817 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ), B(:) 1818 END SUBROUTINE ZGELS1_F95 1819 1820 END INTERFACE 1821 1822 INTERFACE LA_SPSVX 1823 1824 SUBROUTINE SSPSVX_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1825 & BERR, RCOND, INFO ) 1826 USE LA_PRECISION, ONLY: WP => SP 1827 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1828 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1829 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1830 REAL(WP), INTENT(IN) :: AP(:), B(:,:) 1831 REAL(WP), INTENT(OUT) :: X(:,:) 1832 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1833 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1834 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1835 END SUBROUTINE SSPSVX_F95 1836 1837 SUBROUTINE SSPSVX1_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1838 & BERR, RCOND, INFO ) 1839 USE LA_PRECISION, ONLY: WP => SP 1840 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1841 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1842 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1843 REAL(WP), INTENT(IN) :: AP(:), B(:) 1844 REAL(WP), INTENT(OUT) :: X(:) 1845 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1846 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1847 END SUBROUTINE SSPSVX1_F95 1848 1849 SUBROUTINE DSPSVX_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1850 & BERR, RCOND, INFO ) 1851 USE LA_PRECISION, ONLY: WP => DP 1852 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1853 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1854 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1855 REAL(WP), INTENT(IN) :: AP(:), B(:,:) 1856 REAL(WP), INTENT(OUT) :: X(:,:) 1857 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1858 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1859 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1860 END SUBROUTINE DSPSVX_F95 1861 1862 SUBROUTINE DSPSVX1_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1863 & BERR, RCOND, INFO ) 1864 USE LA_PRECISION, ONLY: WP => DP 1865 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1866 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1867 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1868 REAL(WP), INTENT(IN) :: AP(:), B(:) 1869 REAL(WP), INTENT(OUT) :: X(:) 1870 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1871 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1872 END SUBROUTINE DSPSVX1_F95 1873 1874 SUBROUTINE CSPSVX_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1875 & BERR, RCOND, INFO ) 1876 USE LA_PRECISION, ONLY: WP => SP 1877 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1878 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1879 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1880 COMPLEX(WP), INTENT(IN) :: AP(:), B(:,:) 1881 COMPLEX(WP), INTENT(OUT) :: X(:,:) 1882 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1883 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1884 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1885 END SUBROUTINE CSPSVX_F95 1886 1887 SUBROUTINE CSPSVX1_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1888 & BERR, RCOND, INFO ) 1889 USE LA_PRECISION, ONLY: WP => SP 1890 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1891 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1892 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1893 COMPLEX(WP), INTENT(IN) :: AP(:), B(:) 1894 COMPLEX(WP), INTENT(OUT) :: X(:) 1895 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1896 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1897 END SUBROUTINE CSPSVX1_F95 1898 1899 SUBROUTINE ZSPSVX_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1900 & BERR, RCOND, INFO ) 1901 USE LA_PRECISION, ONLY: WP => DP 1902 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1903 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1904 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1905 COMPLEX(WP), INTENT(IN) :: AP(:), B(:,:) 1906 COMPLEX(WP), INTENT(OUT) :: X(:,:) 1907 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1908 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1909 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1910 END SUBROUTINE ZSPSVX_F95 1911 1912 SUBROUTINE ZSPSVX1_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1913 & BERR, RCOND, INFO ) 1914 USE LA_PRECISION, ONLY: WP => DP 1915 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1916 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1917 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1918 COMPLEX(WP), INTENT(IN) :: AP(:), B(:) 1919 COMPLEX(WP), INTENT(OUT) :: X(:) 1920 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1921 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1922 END SUBROUTINE ZSPSVX1_F95 1923 1924 END INTERFACE 1925 1926 INTERFACE LA_HPSVX 1927 1928 SUBROUTINE CHPSVX_F95( A, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1929 & BERR, RCOND, INFO ) 1930 USE LA_PRECISION, ONLY: WP => SP 1931 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1932 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1933 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1934 COMPLEX(WP), INTENT(IN) :: A(:), B(:,:) 1935 COMPLEX(WP), INTENT(OUT) :: X(:,:) 1936 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1937 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1938 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1939 END SUBROUTINE CHPSVX_F95 1940 1941 SUBROUTINE CHPSVX1_F95( A, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1942 & BERR, RCOND, INFO ) 1943 USE LA_PRECISION, ONLY: WP => SP 1944 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1945 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1946 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1947 COMPLEX(WP), INTENT(IN) :: A(:), B(:) 1948 COMPLEX(WP), INTENT(OUT) :: X(:) 1949 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1950 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1951 END SUBROUTINE CHPSVX1_F95 1952 1953 SUBROUTINE ZHPSVX_F95( A, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1954 & BERR, RCOND, INFO ) 1955 USE LA_PRECISION, ONLY: WP => DP 1956 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1957 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1958 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1959 COMPLEX(WP), INTENT(IN) :: A(:), B(:,:) 1960 COMPLEX(WP), INTENT(OUT) :: X(:,:) 1961 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1962 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1963 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1964 END SUBROUTINE ZHPSVX_F95 1965 1966 SUBROUTINE ZHPSVX1_F95( A, B, X, UPLO, AFP, IPIV, FACT, FERR, & 1967 & BERR, RCOND, INFO ) 1968 USE LA_PRECISION, ONLY: WP => DP 1969 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1970 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1971 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 1972 COMPLEX(WP), INTENT(IN) :: A(:), B(:) 1973 COMPLEX(WP), INTENT(OUT) :: X(:) 1974 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1975 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 1976 END SUBROUTINE ZHPSVX1_F95 1977 1978 END INTERFACE 1979 1980 INTERFACE LA_SYSVX 1981 1982 SUBROUTINE SSYSVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 1983 & RCOND, INFO ) 1984 USE LA_PRECISION, ONLY: WP => SP 1985 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1986 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1987 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1988 REAL(WP), INTENT(IN) :: A(:,:), B(:,:) 1989 REAL(WP), INTENT(OUT) :: X(:,:) 1990 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1991 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 1992 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1993 END SUBROUTINE SSYSVX_F95 1994 1995 SUBROUTINE SSYSVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 1996 & BERR, RCOND, INFO ) 1997 USE LA_PRECISION, ONLY: WP => SP 1998 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 1999 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2000 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2001 REAL(WP), INTENT(IN) :: A(:,:), B(:) 2002 REAL(WP), INTENT(OUT) :: X(:) 2003 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2004 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2005 END SUBROUTINE SSYSVX1_F95 2006 2007 SUBROUTINE DSYSVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 2008 & RCOND, INFO ) 2009 USE LA_PRECISION, ONLY: WP => DP 2010 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2011 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2012 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2013 REAL(WP), INTENT(IN) :: A(:,:), B(:,:) 2014 REAL(WP), INTENT(OUT) :: X(:,:) 2015 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2016 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2017 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2018 END SUBROUTINE DSYSVX_F95 2019 2020 SUBROUTINE DSYSVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 2021 & BERR, RCOND, INFO ) 2022 USE LA_PRECISION, ONLY: WP => DP 2023 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2024 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2025 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2026 REAL(WP), INTENT(IN) :: A(:,:), B(:) 2027 REAL(WP), INTENT(OUT) :: X(:) 2028 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2029 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2030 END SUBROUTINE DSYSVX1_F95 2031 2032 SUBROUTINE CSYSVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 2033 & RCOND, INFO ) 2034 USE LA_PRECISION, ONLY: WP => SP 2035 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2036 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2037 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2038 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:,:) 2039 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2040 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2041 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2042 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2043 END SUBROUTINE CSYSVX_F95 2044 2045 SUBROUTINE CSYSVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 2046 & BERR, RCOND, INFO ) 2047 USE LA_PRECISION, ONLY: WP => SP 2048 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2049 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2050 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2051 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:) 2052 COMPLEX(WP), INTENT(OUT) :: X(:) 2053 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2054 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2055 END SUBROUTINE CSYSVX1_F95 2056 2057 SUBROUTINE ZSYSVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 2058 & RCOND, INFO ) 2059 USE LA_PRECISION, ONLY: WP => DP 2060 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2061 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2062 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2063 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:,:) 2064 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2065 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2066 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2067 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2068 END SUBROUTINE ZSYSVX_F95 2069 2070 SUBROUTINE ZSYSVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 2071 & BERR, RCOND, INFO ) 2072 USE LA_PRECISION, ONLY: WP => DP 2073 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2074 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2075 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2076 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:) 2077 COMPLEX(WP), INTENT(OUT) :: X(:) 2078 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2079 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2080 END SUBROUTINE ZSYSVX1_F95 2081 2082 END INTERFACE 2083 2084 INTERFACE LA_HESVX 2085 2086 SUBROUTINE CHESVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 2087 & RCOND, INFO ) 2088 USE LA_PRECISION, ONLY: WP => SP 2089 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2090 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2091 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2092 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:,:) 2093 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2094 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2095 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2096 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2097 END SUBROUTINE CHESVX_F95 2098 2099 SUBROUTINE CHESVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 2100 & BERR, RCOND, INFO ) 2101 USE LA_PRECISION, ONLY: WP => SP 2102 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2103 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2104 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2105 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:) 2106 COMPLEX(WP), INTENT(OUT) :: X(:) 2107 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2108 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2109 END SUBROUTINE CHESVX1_F95 2110 2111 SUBROUTINE ZHESVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 2112 & RCOND, INFO ) 2113 USE LA_PRECISION, ONLY: WP => DP 2114 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2115 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2116 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2117 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:,:) 2118 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2119 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2120 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2121 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2122 END SUBROUTINE ZHESVX_F95 2123 2124 SUBROUTINE ZHESVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 2125 & BERR, RCOND, INFO ) 2126 USE LA_PRECISION, ONLY: WP => DP 2127 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2128 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2129 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2130 COMPLEX(WP), INTENT(IN) :: A(:,:), B(:) 2131 COMPLEX(WP), INTENT(OUT) :: X(:) 2132 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2133 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2134 END SUBROUTINE ZHESVX1_F95 2135 2136 END INTERFACE 2137 2138 INTERFACE LA_PTSVX 2139 2140 SUBROUTINE SPTSVX_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2141 & RCOND, INFO ) 2142 USE LA_PRECISION, ONLY: WP => SP 2143 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2144 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2145 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2146 REAL(WP), INTENT(IN) :: D(:) 2147 REAL(WP), INTENT(IN) :: E(:), B(:,:) 2148 REAL(WP), INTENT(OUT) :: X(:,:) 2149 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2150 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2151 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2152 END SUBROUTINE SPTSVX_F95 2153 2154 SUBROUTINE SPTSVX1_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2155 & RCOND, INFO ) 2156 USE LA_PRECISION, ONLY: WP => SP 2157 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2158 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2159 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2160 REAL(WP), INTENT(IN) :: D(:) 2161 REAL(WP), INTENT(IN) :: E(:), B(:) 2162 REAL(WP), INTENT(OUT) :: X(:) 2163 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2164 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2165 END SUBROUTINE SPTSVX1_F95 2166 2167 SUBROUTINE DPTSVX_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2168 & RCOND, INFO ) 2169 USE LA_PRECISION, ONLY: WP => DP 2170 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2171 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2172 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2173 REAL(WP), INTENT(IN) :: D(:) 2174 REAL(WP), INTENT(IN) :: E(:), B(:,:) 2175 REAL(WP), INTENT(OUT) :: X(:,:) 2176 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2177 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2178 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2179 END SUBROUTINE DPTSVX_F95 2180 2181 SUBROUTINE DPTSVX1_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2182 & RCOND, INFO ) 2183 USE LA_PRECISION, ONLY: WP => DP 2184 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2185 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2186 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2187 REAL(WP), INTENT(IN) :: D(:) 2188 REAL(WP), INTENT(IN) :: E(:), B(:) 2189 REAL(WP), INTENT(OUT) :: X(:) 2190 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2191 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2192 END SUBROUTINE DPTSVX1_F95 2193 2194 SUBROUTINE CPTSVX_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2195 & RCOND, INFO ) 2196 USE LA_PRECISION, ONLY: WP => SP 2197 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2198 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2199 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2200 REAL(WP), INTENT(IN) :: D(:) 2201 COMPLEX(WP), INTENT(IN) :: E(:), B(:,:) 2202 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2203 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2204 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2205 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2206 END SUBROUTINE CPTSVX_F95 2207 2208 SUBROUTINE CPTSVX1_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2209 & RCOND, INFO ) 2210 USE LA_PRECISION, ONLY: WP => SP 2211 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2212 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2213 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2214 REAL(WP), INTENT(IN) :: D(:) 2215 COMPLEX(WP), INTENT(IN) :: E(:), B(:) 2216 COMPLEX(WP), INTENT(OUT) :: X(:) 2217 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2218 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2219 END SUBROUTINE CPTSVX1_F95 2220 2221 SUBROUTINE ZPTSVX_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2222 & RCOND, INFO ) 2223 USE LA_PRECISION, ONLY: WP => DP 2224 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2225 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2226 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2227 REAL(WP), INTENT(IN) :: D(:) 2228 COMPLEX(WP), INTENT(IN) :: E(:), B(:,:) 2229 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2230 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2231 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2232 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2233 END SUBROUTINE ZPTSVX_F95 2234 2235 SUBROUTINE ZPTSVX1_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 2236 & RCOND, INFO ) 2237 USE LA_PRECISION, ONLY: WP => DP 2238 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 2239 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2240 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2241 REAL(WP), INTENT(IN) :: D(:) 2242 COMPLEX(WP), INTENT(IN) :: E(:), B(:) 2243 COMPLEX(WP), INTENT(OUT) :: X(:) 2244 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 2245 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: EF(:) 2246 END SUBROUTINE ZPTSVX1_F95 2247 2248 END INTERFACE 2249 2250 INTERFACE LA_PBSVX 2251 2252 SUBROUTINE SPBSVX_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, FERR,& 2253 & BERR, RCOND, INFO ) 2254 USE LA_PRECISION, ONLY: WP => SP 2255 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2256 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2257 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2258 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2259 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 2260 REAL(WP), INTENT(OUT) :: X(:,:) 2261 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2262 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2263 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2264 END SUBROUTINE SPBSVX_F95 2265 2266 SUBROUTINE SPBSVX1_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, & 2267 & FERR, BERR, RCOND, INFO ) 2268 USE LA_PRECISION, ONLY: WP => SP 2269 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2270 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2271 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2272 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2273 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 2274 REAL(WP), INTENT(OUT) :: X(:) 2275 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2276 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2277 END SUBROUTINE SPBSVX1_F95 2278 2279 SUBROUTINE DPBSVX_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, FERR,& 2280 & BERR, RCOND, INFO ) 2281 USE LA_PRECISION, ONLY: WP => DP 2282 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2283 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2284 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2285 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2286 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 2287 REAL(WP), INTENT(OUT) :: X(:,:) 2288 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2289 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2290 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2291 END SUBROUTINE DPBSVX_F95 2292 2293 SUBROUTINE DPBSVX1_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, & 2294 & FERR, BERR, RCOND, INFO ) 2295 USE LA_PRECISION, ONLY: WP => DP 2296 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2297 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2298 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2299 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2300 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 2301 REAL(WP), INTENT(OUT) :: X(:) 2302 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2303 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2304 END SUBROUTINE DPBSVX1_F95 2305 2306 SUBROUTINE CPBSVX_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, FERR,& 2307 & BERR, RCOND, INFO ) 2308 USE LA_PRECISION, ONLY: WP => SP 2309 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2310 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2311 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2312 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2313 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 2314 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2315 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2316 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2317 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2318 END SUBROUTINE CPBSVX_F95 2319 2320 SUBROUTINE CPBSVX1_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, & 2321 & FERR, BERR, RCOND, INFO ) 2322 USE LA_PRECISION, ONLY: WP => SP 2323 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2324 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2325 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2326 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2327 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 2328 COMPLEX(WP), INTENT(OUT) :: X(:) 2329 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2330 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2331 END SUBROUTINE CPBSVX1_F95 2332 2333 SUBROUTINE ZPBSVX_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, FERR,& 2334 & BERR, RCOND, INFO ) 2335 USE LA_PRECISION, ONLY: WP => DP 2336 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2337 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2338 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2339 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2340 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 2341 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2342 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2343 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2344 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2345 END SUBROUTINE ZPBSVX_F95 2346 2347 SUBROUTINE ZPBSVX1_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, & 2348 & FERR, BERR, RCOND, INFO ) 2349 USE LA_PRECISION, ONLY: WP => DP 2350 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2351 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2352 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2353 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2354 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 2355 COMPLEX(WP), INTENT(OUT) :: X(:) 2356 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2357 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2358 END SUBROUTINE ZPBSVX1_F95 2359 2360 END INTERFACE 2361 2362 INTERFACE LA_PPSVX 2363 2364 SUBROUTINE SPPSVX_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, FERR,& 2365 & BERR, RCOND, INFO ) 2366 USE LA_PRECISION, ONLY: WP => SP 2367 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2368 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2369 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2370 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2371 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 2372 REAL(WP), INTENT(OUT) :: X(:,:) 2373 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2374 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2375 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2376 END SUBROUTINE SPPSVX_F95 2377 2378 SUBROUTINE SPPSVX1_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, & 2379 & FERR, BERR, RCOND, INFO ) 2380 USE LA_PRECISION, ONLY: WP => SP 2381 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2382 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2383 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2384 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2385 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 2386 REAL(WP), INTENT(OUT) :: X(:) 2387 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2388 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2389 END SUBROUTINE SPPSVX1_F95 2390 2391 SUBROUTINE DPPSVX_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, FERR,& 2392 & BERR, RCOND, INFO ) 2393 USE LA_PRECISION, ONLY: WP => DP 2394 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2395 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2396 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2397 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2398 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 2399 REAL(WP), INTENT(OUT) :: X(:,:) 2400 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2401 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2402 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2403 END SUBROUTINE DPPSVX_F95 2404 2405 SUBROUTINE DPPSVX1_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, & 2406 & FERR, BERR, RCOND, INFO ) 2407 USE LA_PRECISION, ONLY: WP => DP 2408 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2409 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2410 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2411 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2412 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 2413 REAL(WP), INTENT(OUT) :: X(:) 2414 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2415 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2416 END SUBROUTINE DPPSVX1_F95 2417 2418 SUBROUTINE CPPSVX_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, FERR,& 2419 & BERR, RCOND, INFO ) 2420 USE LA_PRECISION, ONLY: WP => SP 2421 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2422 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2423 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2424 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2425 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2426 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2427 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2428 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2429 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2430 END SUBROUTINE CPPSVX_F95 2431 2432 SUBROUTINE CPPSVX1_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, & 2433 & FERR, BERR, RCOND, INFO ) 2434 USE LA_PRECISION, ONLY: WP => SP 2435 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2436 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2437 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2438 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2439 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2440 COMPLEX(WP), INTENT(OUT) :: X(:) 2441 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2442 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2443 END SUBROUTINE CPPSVX1_F95 2444 2445 SUBROUTINE ZPPSVX_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, FERR,& 2446 & BERR, RCOND, INFO ) 2447 USE LA_PRECISION, ONLY: WP => DP 2448 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2449 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2450 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2451 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2452 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2453 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2454 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2455 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2456 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2457 END SUBROUTINE ZPPSVX_F95 2458 2459 SUBROUTINE ZPPSVX1_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, & 2460 & FERR, BERR, RCOND, INFO ) 2461 USE LA_PRECISION, ONLY: WP => DP 2462 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2463 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2464 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2465 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2466 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2467 COMPLEX(WP), INTENT(OUT) :: X(:) 2468 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 2469 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2470 END SUBROUTINE ZPPSVX1_F95 2471 2472 END INTERFACE 2473 2474 INTERFACE LA_POSVX 2475 2476 SUBROUTINE SPOSVX_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2477 & BERR, RCOND, INFO ) 2478 USE LA_PRECISION, ONLY: WP => SP 2479 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2480 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2481 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2482 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2483 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2484 REAL(WP), INTENT(OUT) :: X(:,:) 2485 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2486 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2487 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2488 END SUBROUTINE SPOSVX_F95 2489 2490 SUBROUTINE SPOSVX1_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2491 & BERR, RCOND, INFO ) 2492 USE LA_PRECISION, ONLY: WP => SP 2493 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2494 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2495 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2496 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2497 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2498 REAL(WP), INTENT(OUT) :: X(:) 2499 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2500 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2501 END SUBROUTINE SPOSVX1_F95 2502 2503 SUBROUTINE DPOSVX_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2504 & BERR, RCOND, INFO ) 2505 USE LA_PRECISION, ONLY: WP => DP 2506 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2507 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2508 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2509 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2510 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2511 REAL(WP), INTENT(OUT) :: X(:,:) 2512 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2513 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2514 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2515 END SUBROUTINE DPOSVX_F95 2516 2517 SUBROUTINE DPOSVX1_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2518 & BERR, RCOND, INFO ) 2519 USE LA_PRECISION, ONLY: WP => DP 2520 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2521 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2522 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2523 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2524 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2525 REAL(WP), INTENT(OUT) :: X(:) 2526 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2527 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2528 END SUBROUTINE DPOSVX1_F95 2529 2530 SUBROUTINE CPOSVX_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2531 & BERR, RCOND, INFO ) 2532 USE LA_PRECISION, ONLY: WP => SP 2533 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2534 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2535 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2536 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2537 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2538 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2539 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2540 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2541 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2542 END SUBROUTINE CPOSVX_F95 2543 2544 SUBROUTINE CPOSVX1_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2545 & BERR, RCOND, INFO ) 2546 USE LA_PRECISION, ONLY: WP => SP 2547 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2548 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2549 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2550 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2551 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 2552 COMPLEX(WP), INTENT(OUT) :: X(:) 2553 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2554 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2555 END SUBROUTINE CPOSVX1_F95 2556 2557 SUBROUTINE ZPOSVX_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2558 & BERR, RCOND, INFO ) 2559 USE LA_PRECISION, ONLY: WP => DP 2560 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2561 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2562 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2563 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2564 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2565 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2566 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2567 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2568 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2569 END SUBROUTINE ZPOSVX_F95 2570 2571 SUBROUTINE ZPOSVX1_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 2572 & BERR, RCOND, INFO ) 2573 USE LA_PRECISION, ONLY: WP => DP 2574 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 2575 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2576 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2577 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2578 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 2579 COMPLEX(WP), INTENT(OUT) :: X(:) 2580 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 2581 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 2582 END SUBROUTINE ZPOSVX1_F95 2583 2584 END INTERFACE 2585 2586 INTERFACE LA_GTSVX 2587 2588 SUBROUTINE SGTSVX_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV, & 2589 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2590 USE LA_PRECISION, ONLY: WP => SP 2591 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2592 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2593 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2594 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:,:) 2595 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2596 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 2597 & DU2(:) 2598 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2599 REAL(WP), INTENT(OUT) :: X(:,:) 2600 END SUBROUTINE SGTSVX_F95 2601 2602 SUBROUTINE SGTSVX1_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV,& 2603 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2604 USE LA_PRECISION, ONLY: WP => SP 2605 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2606 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2607 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2608 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:) 2609 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2610 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 2611 & DU2(:) 2612 REAL(WP), INTENT(OUT) :: X(:) 2613 END SUBROUTINE SGTSVX1_F95 2614 2615 SUBROUTINE DGTSVX_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV, & 2616 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2617 USE LA_PRECISION, ONLY: WP => DP 2618 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2619 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2620 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2621 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:,:) 2622 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2623 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 2624 & DU2(:) 2625 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2626 REAL(WP), INTENT(OUT) :: X(:,:) 2627 END SUBROUTINE DGTSVX_F95 2628 2629 SUBROUTINE DGTSVX1_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV,& 2630 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2631 USE LA_PRECISION, ONLY: WP => DP 2632 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2633 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2634 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2635 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:) 2636 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2637 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 2638 & DU2(:) 2639 REAL(WP), INTENT(OUT) :: X(:) 2640 END SUBROUTINE DGTSVX1_F95 2641 2642 SUBROUTINE CGTSVX_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV, & 2643 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2644 USE LA_PRECISION, ONLY: WP => SP 2645 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2646 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2647 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2648 COMPLEX(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:,:) 2649 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2650 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), & 2651 & DUF(:), DU2(:) 2652 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2653 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2654 END SUBROUTINE CGTSVX_F95 2655 2656 SUBROUTINE CGTSVX1_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV,& 2657 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2658 USE LA_PRECISION, ONLY: WP => SP 2659 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2660 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2661 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2662 COMPLEX(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:) 2663 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2664 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), & 2665 & DUF(:), DU2(:) 2666 COMPLEX(WP), INTENT(OUT) :: X(:) 2667 END SUBROUTINE CGTSVX1_F95 2668 2669 SUBROUTINE ZGTSVX_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV, & 2670 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2671 USE LA_PRECISION, ONLY: WP => DP 2672 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2673 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2674 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 2675 COMPLEX(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:,:) 2676 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2677 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), & 2678 & DUF(:), DU2(:) 2679 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2680 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2681 END SUBROUTINE ZGTSVX_F95 2682 2683 SUBROUTINE ZGTSVX1_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV,& 2684 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 2685 USE LA_PRECISION, ONLY: WP => DP 2686 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2687 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2688 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 2689 COMPLEX(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:) 2690 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2691 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), & 2692 & DUF(:), DU2(:) 2693 COMPLEX(WP), INTENT(OUT) :: X(:) 2694 END SUBROUTINE ZGTSVX1_F95 2695 2696 END INTERFACE 2697 2698 INTERFACE LA_GBSVX 2699 2700 SUBROUTINE SGBSVX_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2701 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2702 & INFO ) 2703 USE LA_PRECISION, ONLY: WP => SP 2704 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2705 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2706 INTEGER, INTENT(IN), OPTIONAL :: KL 2707 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2708 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 2709 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2710 REAL(WP), INTENT(OUT) :: X(:,:) 2711 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2712 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2713 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2714 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2715 END SUBROUTINE SGBSVX_F95 2716 2717 SUBROUTINE SGBSVX1_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2718 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2719 & INFO ) 2720 USE LA_PRECISION, ONLY: WP => SP 2721 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2722 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2723 INTEGER, INTENT(IN), OPTIONAL :: KL 2724 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2725 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW, FERR, BERR 2726 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2727 REAL(WP), INTENT(OUT) :: X(:) 2728 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2729 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2730 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2731 END SUBROUTINE SGBSVX1_F95 2732 2733 SUBROUTINE DGBSVX_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2734 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2735 & INFO ) 2736 USE LA_PRECISION, ONLY: WP => DP 2737 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2738 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2739 INTEGER, INTENT(IN), OPTIONAL :: KL 2740 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2741 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 2742 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2743 REAL(WP), INTENT(OUT) :: X(:,:) 2744 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2745 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2746 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2747 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2748 END SUBROUTINE DGBSVX_F95 2749 2750 SUBROUTINE DGBSVX1_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2751 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2752 & INFO ) 2753 USE LA_PRECISION, ONLY: WP => DP 2754 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2755 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2756 INTEGER, INTENT(IN), OPTIONAL :: KL 2757 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2758 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW, FERR, BERR 2759 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2760 REAL(WP), INTENT(OUT) :: X(:) 2761 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2762 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2763 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2764 END SUBROUTINE DGBSVX1_F95 2765 2766 SUBROUTINE CGBSVX_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2767 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2768 & INFO ) 2769 USE LA_PRECISION, ONLY: WP => SP 2770 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2771 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2772 INTEGER, INTENT(IN), OPTIONAL :: KL 2773 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2774 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 2775 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2776 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2777 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2778 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2779 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2780 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2781 END SUBROUTINE CGBSVX_F95 2782 2783 SUBROUTINE CGBSVX1_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2784 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2785 & INFO ) 2786 USE LA_PRECISION, ONLY: WP => SP 2787 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2788 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2789 INTEGER, INTENT(IN), OPTIONAL :: KL 2790 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2791 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW, FERR, BERR 2792 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 2793 COMPLEX(WP), INTENT(OUT) :: X(:) 2794 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2795 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2796 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2797 END SUBROUTINE CGBSVX1_F95 2798 2799 SUBROUTINE ZGBSVX_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2800 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2801 & INFO ) 2802 USE LA_PRECISION, ONLY: WP => DP 2803 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2804 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2805 INTEGER, INTENT(IN), OPTIONAL :: KL 2806 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2807 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 2808 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2809 COMPLEX(WP), INTENT(OUT) :: X(:,:) 2810 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2811 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2812 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2813 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 2814 END SUBROUTINE ZGBSVX_F95 2815 2816 SUBROUTINE ZGBSVX1_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 2817 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 2818 & INFO ) 2819 USE LA_PRECISION, ONLY: WP => DP 2820 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 2821 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 2822 INTEGER, INTENT(IN), OPTIONAL :: KL 2823 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2824 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW, FERR, BERR 2825 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 2826 COMPLEX(WP), INTENT(OUT) :: X(:) 2827 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 2828 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 2829 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 2830 END SUBROUTINE ZGBSVX1_F95 2831 2832 END INTERFACE 2833 2834 INTERFACE LA_SPSV 2835 2836 SUBROUTINE SSPSV_F95( AP, B, UPLO, IPIV, INFO ) 2837 USE LA_PRECISION, ONLY: WP => SP 2838 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2839 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2840 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2841 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 2842 END SUBROUTINE SSPSV_F95 2843 2844 SUBROUTINE SSPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2845 USE LA_PRECISION, ONLY: WP => SP 2846 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2847 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2848 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2849 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 2850 END SUBROUTINE SSPSV1_F95 2851 2852 SUBROUTINE DSPSV_F95( AP, B, UPLO, IPIV, INFO ) 2853 USE LA_PRECISION, ONLY: WP => DP 2854 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2855 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2856 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2857 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 2858 END SUBROUTINE DSPSV_F95 2859 2860 SUBROUTINE DSPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2861 USE LA_PRECISION, ONLY: WP => DP 2862 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2863 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2864 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2865 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 2866 END SUBROUTINE DSPSV1_F95 2867 2868 SUBROUTINE CSPSV_F95( AP, B, UPLO, IPIV, INFO ) 2869 USE LA_PRECISION, ONLY: WP => SP 2870 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2871 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2872 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2873 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2874 END SUBROUTINE CSPSV_F95 2875 2876 SUBROUTINE CSPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2877 USE LA_PRECISION, ONLY: WP => SP 2878 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2879 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2880 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2881 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2882 END SUBROUTINE CSPSV1_F95 2883 2884 SUBROUTINE ZSPSV_F95( AP, B, UPLO, IPIV, INFO ) 2885 USE LA_PRECISION, ONLY: WP => DP 2886 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2887 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2888 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2889 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2890 END SUBROUTINE ZSPSV_F95 2891 2892 SUBROUTINE ZSPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2893 USE LA_PRECISION, ONLY: WP => DP 2894 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2895 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2896 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2897 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2898 END SUBROUTINE ZSPSV1_F95 2899 2900 END INTERFACE 2901 2902 INTERFACE LA_HPSV 2903 2904 SUBROUTINE CHPSV_F95( AP, B, UPLO, IPIV, INFO ) 2905 USE LA_PRECISION, ONLY: WP => SP 2906 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2907 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2908 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2909 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2910 END SUBROUTINE CHPSV_F95 2911 2912 SUBROUTINE CHPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2913 USE LA_PRECISION, ONLY: WP => SP 2914 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2915 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2916 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2917 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2918 END SUBROUTINE CHPSV1_F95 2919 2920 SUBROUTINE ZHPSV_F95( AP, B, UPLO, IPIV, INFO ) 2921 USE LA_PRECISION, ONLY: WP => DP 2922 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2923 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2924 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2925 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 2926 END SUBROUTINE ZHPSV_F95 2927 2928 SUBROUTINE ZHPSV1_F95( AP, B, UPLO, IPIV, INFO ) 2929 USE LA_PRECISION, ONLY: WP => DP 2930 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2931 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2932 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2933 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 2934 END SUBROUTINE ZHPSV1_F95 2935 2936 END INTERFACE 2937 2938 INTERFACE LA_SYSV 2939 2940 SUBROUTINE SSYSV_F95( A, B, UPLO, IPIV, INFO ) 2941 USE LA_PRECISION, ONLY: WP => SP 2942 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2943 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2944 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2945 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2946 END SUBROUTINE SSYSV_F95 2947 2948 SUBROUTINE SSYSV1_F95( A, B, UPLO, IPIV, INFO ) 2949 USE LA_PRECISION, ONLY: WP => SP 2950 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2951 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2952 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2953 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2954 END SUBROUTINE SSYSV1_F95 2955 2956 SUBROUTINE DSYSV_F95( A, B, UPLO, IPIV, INFO ) 2957 USE LA_PRECISION, ONLY: WP => DP 2958 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2959 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2960 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2961 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2962 END SUBROUTINE DSYSV_F95 2963 2964 SUBROUTINE DSYSV1_F95( A, B, UPLO, IPIV, INFO ) 2965 USE LA_PRECISION, ONLY: WP => DP 2966 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2967 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2968 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2969 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 2970 END SUBROUTINE DSYSV1_F95 2971 2972 SUBROUTINE CSYSV_F95( A, B, UPLO, IPIV, INFO ) 2973 USE LA_PRECISION, ONLY: WP => SP 2974 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2975 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2976 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2977 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2978 END SUBROUTINE CSYSV_F95 2979 2980 SUBROUTINE CSYSV1_F95( A, B, UPLO, IPIV, INFO ) 2981 USE LA_PRECISION, ONLY: WP => SP 2982 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2983 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2984 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2985 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 2986 END SUBROUTINE CSYSV1_F95 2987 2988 SUBROUTINE ZSYSV_F95( A, B, UPLO, IPIV, INFO ) 2989 USE LA_PRECISION, ONLY: WP => DP 2990 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2991 INTEGER, INTENT(OUT), OPTIONAL :: INFO 2992 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 2993 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 2994 END SUBROUTINE ZSYSV_F95 2995 2996 SUBROUTINE ZSYSV1_F95( A, B, UPLO, IPIV, INFO ) 2997 USE LA_PRECISION, ONLY: WP => DP 2998 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 2999 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3000 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3001 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3002 END SUBROUTINE ZSYSV1_F95 3003 3004 END INTERFACE 3005 3006 INTERFACE LA_HESV 3007 3008 SUBROUTINE CHESV_F95( A, B, UPLO, IPIV, INFO ) 3009 USE LA_PRECISION, ONLY: WP => SP 3010 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3011 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3012 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3013 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3014 END SUBROUTINE CHESV_F95 3015 3016 SUBROUTINE CHESV1_F95( A, B, UPLO, IPIV, INFO ) 3017 USE LA_PRECISION, ONLY: WP => SP 3018 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3019 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3020 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3021 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3022 END SUBROUTINE CHESV1_F95 3023 3024 SUBROUTINE ZHESV_F95( A, B, UPLO, IPIV, INFO ) 3025 USE LA_PRECISION, ONLY: WP => DP 3026 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3027 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3028 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3029 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3030 END SUBROUTINE ZHESV_F95 3031 3032 SUBROUTINE ZHESV1_F95( A, B, UPLO, IPIV, INFO ) 3033 USE LA_PRECISION, ONLY: WP => DP 3034 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3035 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3036 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3037 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3038 END SUBROUTINE ZHESV1_F95 3039 3040 END INTERFACE 3041 3042 INTERFACE LA_PTSV 3043 3044 SUBROUTINE SPTSV_F95( D, E, B, INFO ) 3045 USE LA_PRECISION, ONLY: WP => SP 3046 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3047 REAL(WP), INTENT(INOUT) :: D(:) 3048 REAL(WP), INTENT(INOUT) :: E(:), B(:,:) 3049 END SUBROUTINE SPTSV_F95 3050 3051 SUBROUTINE SPTSV1_F95( D, E, B, INFO ) 3052 USE LA_PRECISION, ONLY: WP => SP 3053 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3054 REAL(WP), INTENT(INOUT) :: D(:) 3055 REAL(WP), INTENT(INOUT) :: E(:), B(:) 3056 END SUBROUTINE SPTSV1_F95 3057 3058 SUBROUTINE DPTSV_F95( D, E, B, INFO ) 3059 USE LA_PRECISION, ONLY: WP => DP 3060 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3061 REAL(WP), INTENT(INOUT) :: D(:) 3062 REAL(WP), INTENT(INOUT) :: E(:), B(:,:) 3063 END SUBROUTINE DPTSV_F95 3064 3065 SUBROUTINE DPTSV1_F95( D, E, B, INFO ) 3066 USE LA_PRECISION, ONLY: WP => DP 3067 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3068 REAL(WP), INTENT(INOUT) :: D(:) 3069 REAL(WP), INTENT(INOUT) :: E(:), B(:) 3070 END SUBROUTINE DPTSV1_F95 3071 3072 SUBROUTINE CPTSV_F95( D, E, B, INFO ) 3073 USE LA_PRECISION, ONLY: WP => SP 3074 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3075 REAL(WP), INTENT(INOUT) :: D(:) 3076 COMPLEX(WP), INTENT(INOUT) :: E(:), B(:,:) 3077 END SUBROUTINE CPTSV_F95 3078 3079 SUBROUTINE CPTSV1_F95( D, E, B, INFO ) 3080 USE LA_PRECISION, ONLY: WP => SP 3081 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3082 REAL(WP), INTENT(INOUT) :: D(:) 3083 COMPLEX(WP), INTENT(INOUT) :: E(:), B(:) 3084 END SUBROUTINE CPTSV1_F95 3085 3086 SUBROUTINE ZPTSV_F95( D, E, B, INFO ) 3087 USE LA_PRECISION, ONLY: WP => DP 3088 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3089 REAL(WP), INTENT(INOUT) :: D(:) 3090 COMPLEX(WP), INTENT(INOUT) :: E(:), B(:,:) 3091 END SUBROUTINE ZPTSV_F95 3092 3093 SUBROUTINE ZPTSV1_F95( D, E, B, INFO ) 3094 USE LA_PRECISION, ONLY: WP => DP 3095 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3096 REAL(WP), INTENT(INOUT) :: D(:) 3097 COMPLEX(WP), INTENT(INOUT) :: E(:), B(:) 3098 END SUBROUTINE ZPTSV1_F95 3099 3100 END INTERFACE 3101 3102 INTERFACE LA_PBSV 3103 3104 SUBROUTINE SPBSV_F95( AB, B, UPLO, INFO ) 3105 USE LA_PRECISION, ONLY: WP => SP 3106 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3107 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3108 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3109 END SUBROUTINE SPBSV_F95 3110 3111 SUBROUTINE SPBSV1_F95( AB, B, UPLO, INFO ) 3112 USE LA_PRECISION, ONLY: WP => SP 3113 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3114 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3115 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 3116 END SUBROUTINE SPBSV1_F95 3117 3118 SUBROUTINE DPBSV_F95( AB, B, UPLO, INFO ) 3119 USE LA_PRECISION, ONLY: WP => DP 3120 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3121 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3122 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3123 END SUBROUTINE DPBSV_F95 3124 3125 SUBROUTINE DPBSV1_F95( AB, B, UPLO, INFO ) 3126 USE LA_PRECISION, ONLY: WP => DP 3127 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3128 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3129 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 3130 END SUBROUTINE DPBSV1_F95 3131 3132 SUBROUTINE CPBSV_F95( AB, B, UPLO, INFO ) 3133 USE LA_PRECISION, ONLY: WP => SP 3134 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3135 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3136 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3137 END SUBROUTINE CPBSV_F95 3138 3139 SUBROUTINE CPBSV1_F95( AB, B, UPLO, INFO ) 3140 USE LA_PRECISION, ONLY: WP => SP 3141 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3142 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3143 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 3144 END SUBROUTINE CPBSV1_F95 3145 3146 SUBROUTINE ZPBSV_F95( AB, B, UPLO, INFO ) 3147 USE LA_PRECISION, ONLY: WP => DP 3148 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3149 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3150 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3151 END SUBROUTINE ZPBSV_F95 3152 3153 SUBROUTINE ZPBSV1_F95( AB, B, UPLO, INFO ) 3154 USE LA_PRECISION, ONLY: WP => DP 3155 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3156 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3157 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 3158 END SUBROUTINE ZPBSV1_F95 3159 3160 END INTERFACE 3161 3162 INTERFACE LA_PPSV 3163 3164 SUBROUTINE SPPSV_F95( AP, B, UPLO, INFO ) 3165 USE LA_PRECISION, ONLY: WP => SP 3166 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3167 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3168 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 3169 END SUBROUTINE SPPSV_F95 3170 3171 SUBROUTINE SPPSV1_F95( AP, B, UPLO, INFO ) 3172 USE LA_PRECISION, ONLY: WP => SP 3173 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3174 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3175 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 3176 END SUBROUTINE SPPSV1_F95 3177 3178 SUBROUTINE DPPSV_F95( AP, B, UPLO, INFO ) 3179 USE LA_PRECISION, ONLY: WP => DP 3180 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3181 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3182 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 3183 END SUBROUTINE DPPSV_F95 3184 3185 SUBROUTINE DPPSV1_F95( AP, B, UPLO, INFO ) 3186 USE LA_PRECISION, ONLY: WP => DP 3187 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3188 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3189 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 3190 END SUBROUTINE DPPSV1_F95 3191 3192 SUBROUTINE CPPSV_F95( AP, B, UPLO, INFO ) 3193 USE LA_PRECISION, ONLY: WP => SP 3194 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3195 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3196 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 3197 END SUBROUTINE CPPSV_F95 3198 3199 SUBROUTINE CPPSV1_F95( AP, B, UPLO, INFO ) 3200 USE LA_PRECISION, ONLY: WP => SP 3201 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3202 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3203 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 3204 END SUBROUTINE CPPSV1_F95 3205 3206 SUBROUTINE ZPPSV_F95( AP, B, UPLO, INFO ) 3207 USE LA_PRECISION, ONLY: WP => DP 3208 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3209 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3210 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:,:) 3211 END SUBROUTINE ZPPSV_F95 3212 3213 SUBROUTINE ZPPSV1_F95( AP, B, UPLO, INFO ) 3214 USE LA_PRECISION, ONLY: WP => DP 3215 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3216 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3217 COMPLEX(WP), INTENT(INOUT) :: AP(:), B(:) 3218 END SUBROUTINE ZPPSV1_F95 3219 3220 END INTERFACE 3221 3222 INTERFACE LA_POSV 3223 3224 SUBROUTINE SPOSV_F95( A, B, UPLO, INFO ) 3225 USE LA_PRECISION, ONLY: WP => SP 3226 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3227 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3228 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3229 END SUBROUTINE SPOSV_F95 3230 3231 SUBROUTINE SPOSV1_F95( A, B, UPLO, INFO ) 3232 USE LA_PRECISION, ONLY: WP => SP 3233 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3234 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3235 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3236 END SUBROUTINE SPOSV1_F95 3237 3238 SUBROUTINE DPOSV_F95( A, B, UPLO, INFO ) 3239 USE LA_PRECISION, ONLY: WP => DP 3240 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3241 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3242 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3243 END SUBROUTINE DPOSV_F95 3244 3245 SUBROUTINE DPOSV1_F95( A, B, UPLO, INFO ) 3246 USE LA_PRECISION, ONLY: WP => DP 3247 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3248 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3249 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3250 END SUBROUTINE DPOSV1_F95 3251 3252 SUBROUTINE CPOSV_F95( A, B, UPLO, INFO ) 3253 USE LA_PRECISION, ONLY: WP => SP 3254 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3255 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3256 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3257 END SUBROUTINE CPOSV_F95 3258 3259 SUBROUTINE CPOSV1_F95( A, B, UPLO, INFO ) 3260 USE LA_PRECISION, ONLY: WP => SP 3261 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3262 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3263 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3264 END SUBROUTINE CPOSV1_F95 3265 3266 SUBROUTINE ZPOSV_F95( A, B, UPLO, INFO ) 3267 USE LA_PRECISION, ONLY: WP => DP 3268 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3269 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3270 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3271 END SUBROUTINE ZPOSV_F95 3272 3273 SUBROUTINE ZPOSV1_F95( A, B, UPLO, INFO ) 3274 USE LA_PRECISION, ONLY: WP => DP 3275 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 3276 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3277 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3278 END SUBROUTINE ZPOSV1_F95 3279 3280 END INTERFACE 3281 3282 INTERFACE LA_GTSV 3283 3284 SUBROUTINE SGTSV_F95( DL, D, DU, B, INFO ) 3285 USE LA_PRECISION, ONLY: WP => SP 3286 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3287 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:,:) 3288 END SUBROUTINE SGTSV_F95 3289 3290 SUBROUTINE SGTSV1_F95( DL, D, DU, B, INFO ) 3291 USE LA_PRECISION, ONLY: WP => SP 3292 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3293 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:) 3294 END SUBROUTINE SGTSV1_F95 3295 3296 SUBROUTINE DGTSV_F95( DL, D, DU, B, INFO ) 3297 USE LA_PRECISION, ONLY: WP => DP 3298 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3299 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:,:) 3300 END SUBROUTINE DGTSV_F95 3301 3302 SUBROUTINE DGTSV1_F95( DL, D, DU, B, INFO ) 3303 USE LA_PRECISION, ONLY: WP => DP 3304 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3305 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:) 3306 END SUBROUTINE DGTSV1_F95 3307 3308 SUBROUTINE CGTSV_F95( DL, D, DU, B, INFO ) 3309 USE LA_PRECISION, ONLY: WP => SP 3310 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3311 COMPLEX(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:,:) 3312 END SUBROUTINE CGTSV_F95 3313 3314 SUBROUTINE CGTSV1_F95( DL, D, DU, B, INFO ) 3315 USE LA_PRECISION, ONLY: WP => SP 3316 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3317 COMPLEX(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:) 3318 END SUBROUTINE CGTSV1_F95 3319 3320 SUBROUTINE ZGTSV_F95( DL, D, DU, B, INFO ) 3321 USE LA_PRECISION, ONLY: WP => DP 3322 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3323 COMPLEX(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:,:) 3324 END SUBROUTINE ZGTSV_F95 3325 3326 SUBROUTINE ZGTSV1_F95( DL, D, DU, B, INFO ) 3327 USE LA_PRECISION, ONLY: WP => DP 3328 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3329 COMPLEX(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:) 3330 END SUBROUTINE ZGTSV1_F95 3331 3332 END INTERFACE 3333 3334 INTERFACE LA_GBSV 3335 3336 SUBROUTINE SGBSV_F95( AB, B, KL, IPIV, INFO ) 3337 USE LA_PRECISION, ONLY: WP => SP 3338 INTEGER, INTENT(IN), OPTIONAL :: KL 3339 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3340 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3341 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3342 END SUBROUTINE SGBSV_F95 3343 3344 SUBROUTINE SGBSV1_F95( AB, B, KL, IPIV, INFO ) 3345 USE LA_PRECISION, ONLY: WP => SP 3346 INTEGER, INTENT(IN), OPTIONAL :: KL 3347 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3348 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3349 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 3350 END SUBROUTINE SGBSV1_F95 3351 3352 SUBROUTINE DGBSV_F95( AB, B, KL, IPIV, INFO ) 3353 USE LA_PRECISION, ONLY: WP => DP 3354 INTEGER, INTENT(IN), OPTIONAL :: KL 3355 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3356 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3357 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3358 END SUBROUTINE DGBSV_F95 3359 3360 SUBROUTINE DGBSV1_F95( AB, B, KL, IPIV, INFO ) 3361 USE LA_PRECISION, ONLY: WP => DP 3362 INTEGER, INTENT(IN), OPTIONAL :: KL 3363 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3364 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3365 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 3366 END SUBROUTINE DGBSV1_F95 3367 3368 SUBROUTINE CGBSV_F95( AB, B, KL, IPIV, INFO ) 3369 USE LA_PRECISION, ONLY: WP => SP 3370 INTEGER, INTENT(IN), OPTIONAL :: KL 3371 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3372 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3373 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3374 END SUBROUTINE CGBSV_F95 3375 3376 SUBROUTINE CGBSV1_F95( AB, B, KL, IPIV, INFO ) 3377 USE LA_PRECISION, ONLY: WP => SP 3378 INTEGER, INTENT(IN), OPTIONAL :: KL 3379 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3380 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3381 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 3382 END SUBROUTINE CGBSV1_F95 3383 3384 SUBROUTINE ZGBSV_F95( AB, B, KL, IPIV, INFO ) 3385 USE LA_PRECISION, ONLY: WP => DP 3386 INTEGER, INTENT(IN), OPTIONAL :: KL 3387 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3388 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3389 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 3390 END SUBROUTINE ZGBSV_F95 3391 3392 SUBROUTINE ZGBSV1_F95( AB, B, KL, IPIV, INFO ) 3393 USE LA_PRECISION, ONLY: WP => DP 3394 INTEGER, INTENT(IN), OPTIONAL :: KL 3395 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3396 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3397 COMPLEX(WP), INTENT(INOUT) :: AB(:,:), B(:) 3398 END SUBROUTINE ZGBSV1_F95 3399 3400 END INTERFACE 3401 3402 INTERFACE LA_GESV 3403 3404 SUBROUTINE SGESV_F95( A, B, IPIV, INFO ) 3405 USE LA_PRECISION, ONLY: WP => SP 3406 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3407 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3408 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3409 END SUBROUTINE SGESV_F95 3410 3411 SUBROUTINE SGESV1_F95( A, B, IPIV, INFO ) 3412 USE LA_PRECISION, ONLY: WP => SP 3413 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3414 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3415 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3416 END SUBROUTINE SGESV1_F95 3417 3418 SUBROUTINE DGESV_F95( A, B, IPIV, INFO ) 3419 USE LA_PRECISION, ONLY: WP => DP 3420 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3421 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3422 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3423 END SUBROUTINE DGESV_F95 3424 3425 SUBROUTINE DGESV1_F95( A, B, IPIV, INFO ) 3426 USE LA_PRECISION, ONLY: WP => DP 3427 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3428 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3429 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3430 END SUBROUTINE DGESV1_F95 3431 3432 SUBROUTINE CGESV_F95( A, B, IPIV, INFO ) 3433 USE LA_PRECISION, ONLY: WP => SP 3434 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3435 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3436 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3437 END SUBROUTINE CGESV_F95 3438 3439 SUBROUTINE CGESV1_F95( A, B, IPIV, INFO ) 3440 USE LA_PRECISION, ONLY: WP => SP 3441 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3442 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3443 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3444 END SUBROUTINE CGESV1_F95 3445 3446 SUBROUTINE ZGESV_F95( A, B, IPIV, INFO ) 3447 USE LA_PRECISION, ONLY: WP => DP 3448 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3449 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3450 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3451 END SUBROUTINE ZGESV_F95 3452 3453 SUBROUTINE ZGESV1_F95( A, B, IPIV, INFO ) 3454 USE LA_PRECISION, ONLY: WP => DP 3455 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3456 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 3457 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3458 END SUBROUTINE ZGESV1_F95 3459 3460 END INTERFACE 3461 3462 INTERFACE LA_GESVX 3463 3464 SUBROUTINE SGESVX_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R, & 3465 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3466 USE LA_PRECISION, ONLY: WP => SP 3467 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3468 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3469 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3470 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3471 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3472 REAL(WP), INTENT(OUT) :: X(:,:) 3473 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3474 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3475 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3476 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3477 END SUBROUTINE SGESVX_F95 3478 3479 SUBROUTINE SGESVX1_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R,& 3480 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3481 USE LA_PRECISION, ONLY: WP => SP 3482 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3483 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3484 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3485 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3486 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3487 REAL(WP), INTENT(OUT) :: X(:) 3488 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3489 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3490 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3491 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3492 END SUBROUTINE SGESVX1_F95 3493 3494 SUBROUTINE DGESVX_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R, & 3495 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3496 USE LA_PRECISION, ONLY: WP => DP 3497 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3498 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3499 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3500 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3501 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3502 REAL(WP), INTENT(OUT) :: X(:,:) 3503 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3504 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3505 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3506 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3507 END SUBROUTINE DGESVX_F95 3508 3509 SUBROUTINE DGESVX1_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R,& 3510 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3511 USE LA_PRECISION, ONLY: WP => DP 3512 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3513 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3514 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3515 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3516 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3517 REAL(WP), INTENT(OUT) :: X(:) 3518 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3519 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3520 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3521 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3522 END SUBROUTINE DGESVX1_F95 3523 3524 SUBROUTINE CGESVX_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R, & 3525 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3526 USE LA_PRECISION, ONLY: WP => SP 3527 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3528 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3529 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3530 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3531 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3532 COMPLEX(WP), INTENT(OUT) :: X(:,:) 3533 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3534 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3535 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3536 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3537 END SUBROUTINE CGESVX_F95 3538 3539 SUBROUTINE CGESVX1_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R,& 3540 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3541 USE LA_PRECISION, ONLY: WP => SP 3542 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3543 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3544 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3545 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3546 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3547 COMPLEX(WP), INTENT(OUT) :: X(:) 3548 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3549 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3550 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3551 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3552 END SUBROUTINE CGESVX1_F95 3553 3554 SUBROUTINE ZGESVX_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R, & 3555 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3556 USE LA_PRECISION, ONLY: WP => DP 3557 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3558 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3559 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3560 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3561 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3562 COMPLEX(WP), INTENT(OUT) :: X(:,:) 3563 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3564 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3565 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3566 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3567 END SUBROUTINE ZGESVX_F95 3568 3569 SUBROUTINE ZGESVX1_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R,& 3570 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 3571 USE LA_PRECISION, ONLY: WP => DP 3572 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 3573 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 3574 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3575 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 3576 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3577 COMPLEX(WP), INTENT(OUT) :: X(:) 3578 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 3579 COMPLEX(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 3580 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 3581 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3582 END SUBROUTINE ZGESVX1_F95 3583 3584 END INTERFACE 3585 3586 INTERFACE LA_GETRF 3587 3588 SUBROUTINE SGETRF_F95( A, IPIV, RCOND, NORM, INFO ) 3589 USE LA_PRECISION, ONLY: WP => SP 3590 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 3591 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3592 REAL(WP), INTENT( OUT ), OPTIONAL :: RCOND 3593 INTEGER, INTENT( OUT ), OPTIONAL :: IPIV( : ) 3594 REAL(WP), INTENT( INOUT ) :: A( :, : ) 3595 END SUBROUTINE SGETRF_F95 3596 3597 SUBROUTINE DGETRF_F95( A, IPIV, RCOND, NORM, INFO ) 3598 USE LA_PRECISION, ONLY: WP => DP 3599 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 3600 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3601 REAL(WP), INTENT( OUT ), OPTIONAL :: RCOND 3602 INTEGER, INTENT( OUT ), OPTIONAL :: IPIV( : ) 3603 REAL(WP), INTENT( INOUT ) :: A( :, : ) 3604 END SUBROUTINE DGETRF_F95 3605 3606 SUBROUTINE CGETRF_F95( A, IPIV, RCOND, NORM, INFO ) 3607 USE LA_PRECISION, ONLY: WP => SP 3608 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 3609 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3610 REAL(WP), INTENT( OUT ), OPTIONAL :: RCOND 3611 INTEGER, INTENT( OUT ), OPTIONAL :: IPIV( : ) 3612 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ) 3613 END SUBROUTINE CGETRF_F95 3614 3615 SUBROUTINE ZGETRF_F95( A, IPIV, RCOND, NORM, INFO ) 3616 USE LA_PRECISION, ONLY: WP => DP 3617 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 3618 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3619 REAL(WP), INTENT( OUT ), OPTIONAL :: RCOND 3620 INTEGER, INTENT( OUT ), OPTIONAL :: IPIV( : ) 3621 COMPLEX(WP), INTENT( INOUT ) :: A( :, : ) 3622 END SUBROUTINE ZGETRF_F95 3623 3624 END INTERFACE 3625 3626 INTERFACE LA_GETRS 3627 3628 SUBROUTINE SGETRS_F95( A, IPIV, B, TRANS, INFO ) 3629 USE LA_PRECISION, ONLY: WP => SP 3630 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3631 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3632 INTEGER, INTENT(IN) :: IPIV(:) 3633 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3634 END SUBROUTINE SGETRS_F95 3635 3636 SUBROUTINE SGETRS1_F95( A, IPIV, B, TRANS, INFO ) 3637 USE LA_PRECISION, ONLY: WP => SP 3638 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3639 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3640 INTEGER, INTENT(IN) :: IPIV(:) 3641 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3642 END SUBROUTINE SGETRS1_F95 3643 3644 SUBROUTINE DGETRS_F95( A, IPIV, B, TRANS, INFO ) 3645 USE LA_PRECISION, ONLY: WP => DP 3646 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3647 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3648 INTEGER, INTENT(IN) :: IPIV(:) 3649 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3650 END SUBROUTINE DGETRS_F95 3651 3652 SUBROUTINE DGETRS1_F95( A, IPIV, B, TRANS, INFO ) 3653 USE LA_PRECISION, ONLY: WP => DP 3654 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3655 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3656 INTEGER, INTENT(IN) :: IPIV(:) 3657 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 3658 END SUBROUTINE DGETRS1_F95 3659 3660 SUBROUTINE CGETRS_F95( A, IPIV, B, TRANS, INFO ) 3661 USE LA_PRECISION, ONLY: WP => SP 3662 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3663 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3664 INTEGER, INTENT(IN) :: IPIV(:) 3665 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3666 END SUBROUTINE CGETRS_F95 3667 3668 SUBROUTINE CGETRS1_F95( A, IPIV, B, TRANS, INFO ) 3669 USE LA_PRECISION, ONLY: WP => SP 3670 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3671 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3672 INTEGER, INTENT(IN) :: IPIV(:) 3673 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3674 END SUBROUTINE CGETRS1_F95 3675 3676 SUBROUTINE ZGETRS_F95( A, IPIV, B, TRANS, INFO ) 3677 USE LA_PRECISION, ONLY: WP => DP 3678 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3679 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3680 INTEGER, INTENT(IN) :: IPIV(:) 3681 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 3682 END SUBROUTINE ZGETRS_F95 3683 3684 SUBROUTINE ZGETRS1_F95( A, IPIV, B, TRANS, INFO ) 3685 USE LA_PRECISION, ONLY: WP => DP 3686 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3687 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3688 INTEGER, INTENT(IN) :: IPIV(:) 3689 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:) 3690 END SUBROUTINE ZGETRS1_F95 3691 3692 END INTERFACE 3693 3694 INTERFACE LA_GETRI 3695 3696 SUBROUTINE SGETRI_F95( A, IPIV, INFO ) 3697 USE LA_PRECISION, ONLY: WP => SP 3698 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3699 INTEGER, INTENT(IN) :: IPIV(:) 3700 REAL(WP), INTENT(INOUT) :: A(:,:) 3701 END SUBROUTINE SGETRI_F95 3702 3703 SUBROUTINE DGETRI_F95( A, IPIV, INFO ) 3704 USE LA_PRECISION, ONLY: WP => DP 3705 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3706 INTEGER, INTENT(IN) :: IPIV(:) 3707 REAL(WP), INTENT(INOUT) :: A(:,:) 3708 END SUBROUTINE DGETRI_F95 3709 3710 SUBROUTINE CGETRI_F95( A, IPIV, INFO ) 3711 USE LA_PRECISION, ONLY: WP => SP 3712 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3713 INTEGER, INTENT(IN) :: IPIV(:) 3714 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3715 END SUBROUTINE CGETRI_F95 3716 3717 SUBROUTINE ZGETRI_F95( A, IPIV, INFO ) 3718 USE LA_PRECISION, ONLY: WP => DP 3719 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3720 INTEGER, INTENT(IN) :: IPIV(:) 3721 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3722 END SUBROUTINE ZGETRI_F95 3723 3724 END INTERFACE 3725 3726 INTERFACE LA_GERFS 3727 3728 SUBROUTINE SGERFS_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3729 & INFO ) 3730 USE LA_PRECISION, ONLY: WP => SP 3731 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3732 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3733 INTEGER, INTENT(IN) :: IPIV(:) 3734 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:), B(:,:) 3735 REAL(WP), INTENT(INOUT) :: X(:,:) 3736 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3737 END SUBROUTINE SGERFS_F95 3738 3739 SUBROUTINE SGERFS1_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3740 & INFO ) 3741 USE LA_PRECISION, ONLY: WP => SP 3742 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3743 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3744 INTEGER, INTENT(IN) :: IPIV(:) 3745 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:) 3746 REAL(WP), INTENT(IN) :: B(:) 3747 REAL(WP), INTENT(INOUT) :: X(:) 3748 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3749 END SUBROUTINE SGERFS1_F95 3750 3751 SUBROUTINE DGERFS_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3752 & INFO ) 3753 USE LA_PRECISION, ONLY: WP => DP 3754 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3755 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3756 INTEGER, INTENT(IN) :: IPIV(:) 3757 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:), B(:,:) 3758 REAL(WP), INTENT(INOUT) :: X(:,:) 3759 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3760 END SUBROUTINE DGERFS_F95 3761 3762 SUBROUTINE DGERFS1_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3763 & INFO ) 3764 USE LA_PRECISION, ONLY: WP => DP 3765 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3766 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3767 INTEGER, INTENT(IN) :: IPIV(:) 3768 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:) 3769 REAL(WP), INTENT(IN) :: B(:) 3770 REAL(WP), INTENT(INOUT) :: X(:) 3771 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3772 END SUBROUTINE DGERFS1_F95 3773 3774 SUBROUTINE CGERFS_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3775 & INFO ) 3776 USE LA_PRECISION, ONLY: WP => SP 3777 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3778 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3779 INTEGER, INTENT(IN) :: IPIV(:) 3780 COMPLEX(WP), INTENT(IN) :: A(:,:), AF(:,:), B(:,:) 3781 COMPLEX(WP), INTENT(INOUT) :: X(:,:) 3782 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3783 END SUBROUTINE CGERFS_F95 3784 3785 SUBROUTINE CGERFS1_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3786 & INFO ) 3787 USE LA_PRECISION, ONLY: WP => SP 3788 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3789 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3790 INTEGER, INTENT(IN) :: IPIV(:) 3791 COMPLEX(WP), INTENT(IN) :: A(:,:), AF(:,:) 3792 COMPLEX(WP), INTENT(IN) :: B(:) 3793 COMPLEX(WP), INTENT(INOUT) :: X(:) 3794 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3795 END SUBROUTINE CGERFS1_F95 3796 3797 SUBROUTINE ZGERFS_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3798 & INFO ) 3799 USE LA_PRECISION, ONLY: WP => DP 3800 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3801 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3802 INTEGER, INTENT(IN) :: IPIV(:) 3803 COMPLEX(WP), INTENT(IN) :: A(:,:), AF(:,:), B(:,:) 3804 COMPLEX(WP), INTENT(INOUT) :: X(:,:) 3805 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 3806 END SUBROUTINE ZGERFS_F95 3807 3808 SUBROUTINE ZGERFS1_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 3809 & INFO ) 3810 USE LA_PRECISION, ONLY: WP => DP 3811 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 3812 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3813 INTEGER, INTENT(IN) :: IPIV(:) 3814 COMPLEX(WP), INTENT(IN) :: A(:,:), AF(:,:) 3815 COMPLEX(WP), INTENT(IN) :: B(:) 3816 COMPLEX(WP), INTENT(INOUT) :: X(:) 3817 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 3818 END SUBROUTINE ZGERFS1_F95 3819 3820 END INTERFACE 3821 3822 INTERFACE LA_GEEQU 3823 3824 SUBROUTINE SGEEQU_F95( A, R, C, ROWCND, COLCND, AMAX, INFO ) 3825 USE LA_PRECISION, ONLY: WP => SP 3826 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3827 REAL(WP), INTENT( OUT ), OPTIONAL :: AMAX, COLCND, ROWCND 3828 REAL(WP), INTENT( IN ) :: A( :, : ) 3829 REAL(WP), INTENT( OUT ) :: C( : ), R( : ) 3830 END SUBROUTINE SGEEQU_F95 3831 3832 SUBROUTINE DGEEQU_F95( A, R, C, ROWCND, COLCND, AMAX, INFO ) 3833 USE LA_PRECISION, ONLY: WP => DP 3834 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3835 REAL(WP), INTENT( OUT ), OPTIONAL :: AMAX, COLCND, ROWCND 3836 REAL(WP), INTENT( IN ) :: A( :, : ) 3837 REAL(WP), INTENT( OUT ) :: C( : ), R( : ) 3838 END SUBROUTINE DGEEQU_F95 3839 3840 SUBROUTINE CGEEQU_F95( A, R, C, ROWCND, COLCND, AMAX, INFO ) 3841 USE LA_PRECISION, ONLY: WP => SP 3842 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3843 REAL(WP), INTENT( OUT ), OPTIONAL :: AMAX, COLCND, ROWCND 3844 COMPLEX(WP), INTENT( IN ) :: A( :, : ) 3845 REAL(WP), INTENT( OUT ) :: C( : ), R( : ) 3846 END SUBROUTINE CGEEQU_F95 3847 3848 SUBROUTINE ZGEEQU_F95( A, R, C, ROWCND, COLCND, AMAX, INFO ) 3849 USE LA_PRECISION, ONLY: WP => DP 3850 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3851 REAL(WP), INTENT( OUT ), OPTIONAL :: AMAX, COLCND, ROWCND 3852 COMPLEX(WP), INTENT( IN ) :: A( :, : ) 3853 REAL(WP), INTENT( OUT ) :: C( : ), R( : ) 3854 END SUBROUTINE ZGEEQU_F95 3855 3856 END INTERFACE 3857 3858 INTERFACE LA_SYEV 3859 3860 SUBROUTINE SSYEV_F95( A, W, JOBZ, UPLO, INFO ) 3861 USE LA_PRECISION, ONLY: WP => SP 3862 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3863 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3864 REAL(WP), INTENT(INOUT) :: A(:,:) 3865 REAL(WP), INTENT(OUT) :: W(:) 3866 END SUBROUTINE SSYEV_F95 3867 3868 SUBROUTINE DSYEV_F95( A, W, JOBZ, UPLO, INFO ) 3869 USE LA_PRECISION, ONLY: WP => DP 3870 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3871 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3872 REAL(WP), INTENT(INOUT) :: A(:,:) 3873 REAL(WP), INTENT(OUT) :: W(:) 3874 END SUBROUTINE DSYEV_F95 3875 3876 END INTERFACE 3877 3878 INTERFACE LA_HEEV 3879 3880 SUBROUTINE CHEEV_F95( A, W, JOBZ, UPLO, INFO ) 3881 USE LA_PRECISION, ONLY: WP => SP 3882 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3883 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3884 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3885 REAL(WP), INTENT(OUT) :: W(:) 3886 END SUBROUTINE CHEEV_F95 3887 3888 SUBROUTINE ZHEEV_F95( A, W, JOBZ, UPLO, INFO ) 3889 USE LA_PRECISION, ONLY: WP => DP 3890 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3891 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3892 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3893 REAL(WP), INTENT(OUT) :: W(:) 3894 END SUBROUTINE ZHEEV_F95 3895 3896 END INTERFACE 3897 3898 INTERFACE LA_SYEVD 3899 3900 SUBROUTINE SSYEVD_F95( A, W, JOBZ, UPLO, INFO ) 3901 USE LA_PRECISION, ONLY: WP => SP 3902 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3903 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3904 REAL(WP), INTENT(INOUT) :: A(:,:) 3905 REAL(WP), INTENT(OUT) :: W(:) 3906 END SUBROUTINE SSYEVD_F95 3907 3908 SUBROUTINE DSYEVD_F95( A, W, JOBZ, UPLO, INFO ) 3909 USE LA_PRECISION, ONLY: WP => DP 3910 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3911 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3912 REAL(WP), INTENT(INOUT) :: A(:,:) 3913 REAL(WP), INTENT(OUT) :: W(:) 3914 END SUBROUTINE DSYEVD_F95 3915 3916 END INTERFACE 3917 3918 INTERFACE LA_HEEVD 3919 3920 SUBROUTINE CHEEVD_F95( A, W, JOBZ, UPLO, INFO ) 3921 USE LA_PRECISION, ONLY: WP => SP 3922 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3923 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3924 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3925 REAL(WP), INTENT(OUT) :: W(:) 3926 END SUBROUTINE CHEEVD_F95 3927 3928 SUBROUTINE ZHEEVD_F95( A, W, JOBZ, UPLO, INFO ) 3929 USE LA_PRECISION, ONLY: WP => DP 3930 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3931 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3932 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3933 REAL(WP), INTENT(OUT) :: W(:) 3934 END SUBROUTINE ZHEEVD_F95 3935 3936 END INTERFACE 3937 3938 INTERFACE LA_SYEVR 3939 3940 SUBROUTINE SSYEVR_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 3941 & ISUPPZ, ABSTOL, INFO ) 3942 USE LA_PRECISION, ONLY: WP => SP 3943 REAL(WP), INTENT(INOUT) :: A(:,:) 3944 REAL(WP), INTENT(OUT) :: W(:) 3945 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3946 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3947 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 3948 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 3949 INTEGER, INTENT(OUT), OPTIONAL :: M 3950 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 3951 END SUBROUTINE SSYEVR_F95 3952 3953 SUBROUTINE DSYEVR_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 3954 & ISUPPZ, ABSTOL, INFO ) 3955 USE LA_PRECISION, ONLY: WP => DP 3956 REAL(WP), INTENT(INOUT) :: A(:,:) 3957 REAL(WP), INTENT(OUT) :: W(:) 3958 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3959 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3960 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 3961 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 3962 INTEGER, INTENT(OUT), OPTIONAL :: M 3963 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 3964 END SUBROUTINE DSYEVR_F95 3965 3966 END INTERFACE 3967 3968 INTERFACE LA_HEEVR 3969 3970 SUBROUTINE CHEEVR_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 3971 & ISUPPZ, ABSTOL, INFO ) 3972 USE LA_PRECISION, ONLY: WP => SP 3973 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3974 REAL(WP), INTENT(OUT) :: W(:) 3975 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3976 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3977 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 3978 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 3979 INTEGER, INTENT(OUT), OPTIONAL :: M 3980 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 3981 END SUBROUTINE CHEEVR_F95 3982 3983 SUBROUTINE ZHEEVR_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 3984 & ISUPPZ, ABSTOL, INFO ) 3985 USE LA_PRECISION, ONLY: WP => DP 3986 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 3987 REAL(WP), INTENT(OUT) :: W(:) 3988 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 3989 INTEGER, INTENT(OUT), OPTIONAL :: INFO 3990 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 3991 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 3992 INTEGER, INTENT(OUT), OPTIONAL :: M 3993 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 3994 END SUBROUTINE ZHEEVR_F95 3995 3996 END INTERFACE 3997 3998 INTERFACE LA_SYEVX 3999 4000 SUBROUTINE SSYEVX_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 4001 & IFAIL, ABSTOL, INFO ) 4002 USE LA_PRECISION, ONLY: WP => SP 4003 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4004 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 4005 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 4006 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4007 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4008 REAL(WP), INTENT(INOUT) :: A(:,:) 4009 REAL(WP), INTENT(OUT) :: W(:) 4010 END SUBROUTINE SSYEVX_F95 4011 4012 SUBROUTINE DSYEVX_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 4013 & IFAIL, ABSTOL, INFO ) 4014 USE LA_PRECISION, ONLY: WP => DP 4015 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4016 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 4017 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 4018 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4019 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4020 REAL(WP), INTENT(INOUT) :: A(:,:) 4021 REAL(WP), INTENT(OUT) :: W(:) 4022 END SUBROUTINE DSYEVX_F95 4023 4024 END INTERFACE 4025 4026 INTERFACE LA_HEEVX 4027 4028 SUBROUTINE CHEEVX_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 4029 & IFAIL, ABSTOL, INFO ) 4030 USE LA_PRECISION, ONLY: WP => SP 4031 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4032 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 4033 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 4034 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4035 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4036 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4037 REAL(WP), INTENT(OUT) :: W(:) 4038 END SUBROUTINE CHEEVX_F95 4039 4040 SUBROUTINE ZHEEVX_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 4041 & IFAIL, ABSTOL, INFO ) 4042 USE LA_PRECISION, ONLY: WP => DP 4043 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4044 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 4045 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 4046 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4047 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4048 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4049 REAL(WP), INTENT(OUT) :: W(:) 4050 END SUBROUTINE ZHEEVX_F95 4051 4052 END INTERFACE 4053 4054 INTERFACE LA_SYGST 4055 4056 SUBROUTINE SSYGST_F95( A, B, ITYPE, UPLO, INFO ) 4057 USE LA_PRECISION, ONLY: WP => SP 4058 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4059 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4060 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4061 REAL(WP), INTENT(INOUT) :: A(:,:) 4062 REAL(WP), INTENT(IN) :: B(:,:) 4063 END SUBROUTINE SSYGST_F95 4064 4065 SUBROUTINE DSYGST_F95( A, B, ITYPE, UPLO, INFO ) 4066 USE LA_PRECISION, ONLY: WP => DP 4067 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4068 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4069 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4070 REAL(WP), INTENT(INOUT) :: A(:,:) 4071 REAL(WP), INTENT(IN) :: B(:,:) 4072 END SUBROUTINE DSYGST_F95 4073 4074 END INTERFACE 4075 4076 INTERFACE LA_HEGST 4077 4078 SUBROUTINE CHEGST_F95( A, B, ITYPE, UPLO, INFO ) 4079 USE LA_PRECISION, ONLY: WP => SP 4080 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4081 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4082 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4083 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4084 COMPLEX(WP), INTENT(IN) :: B(:,:) 4085 END SUBROUTINE CHEGST_F95 4086 4087 SUBROUTINE ZHEGST_F95( A, B, ITYPE, UPLO, INFO ) 4088 USE LA_PRECISION, ONLY: WP => DP 4089 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4090 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4091 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4092 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4093 COMPLEX(WP), INTENT(IN) :: B(:,:) 4094 END SUBROUTINE ZHEGST_F95 4095 4096 END INTERFACE 4097 4098 INTERFACE LA_SYGV 4099 4100 SUBROUTINE SSYGV_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4101 USE LA_PRECISION, ONLY: WP => SP 4102 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4103 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4104 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4105 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4106 REAL(WP), INTENT(OUT) :: W(:) 4107 END SUBROUTINE SSYGV_F95 4108 4109 SUBROUTINE DSYGV_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4110 USE LA_PRECISION, ONLY: WP => DP 4111 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4112 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4113 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4114 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4115 REAL(WP), INTENT(OUT) :: W(:) 4116 END SUBROUTINE DSYGV_F95 4117 4118 END INTERFACE 4119 4120 INTERFACE LA_HEGV 4121 4122 SUBROUTINE CHEGV_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4123 USE LA_PRECISION, ONLY: WP => SP 4124 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4125 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4126 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4127 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4128 REAL(WP), INTENT(OUT) :: W(:) 4129 END SUBROUTINE CHEGV_F95 4130 4131 SUBROUTINE ZHEGV_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4132 USE LA_PRECISION, ONLY: WP => DP 4133 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4134 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4135 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4136 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4137 REAL(WP), INTENT(OUT) :: W(:) 4138 END SUBROUTINE ZHEGV_F95 4139 4140 END INTERFACE 4141 4142 INTERFACE LA_SYGVX 4143 4144 SUBROUTINE SSYGVX_F95( A, B, W, ITYPE, JOBZ, UPLO, VL, VU, IL, & 4145 & IU, M, IFAIL, ABSTOL, INFO ) 4146 USE LA_PRECISION, ONLY: WP => SP 4147 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4148 REAL(WP), INTENT(OUT) :: W(:) 4149 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4150 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4151 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4152 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 4153 INTEGER, INTENT(OUT), OPTIONAL :: M 4154 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4155 END SUBROUTINE SSYGVX_F95 4156 4157 SUBROUTINE DSYGVX_F95( A, B, W, ITYPE, JOBZ, UPLO, VL, VU, IL, & 4158 & IU, M, IFAIL, ABSTOL, INFO ) 4159 USE LA_PRECISION, ONLY: WP => DP 4160 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4161 REAL(WP), INTENT(OUT) :: W(:) 4162 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4163 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4164 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4165 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 4166 INTEGER, INTENT(OUT), OPTIONAL :: M 4167 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4168 END SUBROUTINE DSYGVX_F95 4169 4170 END INTERFACE 4171 4172 INTERFACE LA_HEGVX 4173 4174 SUBROUTINE CHEGVX_F95( A, B, W, ITYPE, JOBZ, UPLO, VL, VU, IL, & 4175 & IU, M, IFAIL, ABSTOL, INFO ) 4176 USE LA_PRECISION, ONLY: WP => SP 4177 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4178 REAL(WP), INTENT(OUT) :: W(:) 4179 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4180 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4181 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4182 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 4183 INTEGER, INTENT(OUT), OPTIONAL :: M 4184 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4185 END SUBROUTINE CHEGVX_F95 4186 4187 SUBROUTINE ZHEGVX_F95( A, B, W, ITYPE, JOBZ, UPLO, VL, VU, IL, & 4188 & IU, M, IFAIL, ABSTOL, INFO ) 4189 USE LA_PRECISION, ONLY: WP => DP 4190 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4191 REAL(WP), INTENT(OUT) :: W(:) 4192 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4193 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4194 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 4195 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 4196 INTEGER, INTENT(OUT), OPTIONAL :: M 4197 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 4198 END SUBROUTINE ZHEGVX_F95 4199 4200 END INTERFACE 4201 4202 INTERFACE LA_SYGVD 4203 4204 SUBROUTINE SSYGVD_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4205 USE LA_PRECISION, ONLY: WP => SP 4206 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4207 REAL(WP), INTENT(OUT) :: W(:) 4208 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4209 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4210 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4211 END SUBROUTINE SSYGVD_F95 4212 4213 SUBROUTINE DSYGVD_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4214 USE LA_PRECISION, ONLY: WP => DP 4215 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4216 REAL(WP), INTENT(OUT) :: W(:) 4217 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4218 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4219 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4220 END SUBROUTINE DSYGVD_F95 4221 4222 END INTERFACE 4223 4224 INTERFACE LA_HEGVD 4225 4226 SUBROUTINE CHEGVD_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4227 USE LA_PRECISION, ONLY: WP => SP 4228 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4229 REAL(WP), INTENT(OUT) :: W(:) 4230 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4231 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4232 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4233 END SUBROUTINE CHEGVD_F95 4234 4235 4236 SUBROUTINE ZHEGVD_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 4237 USE LA_PRECISION, ONLY: WP => DP 4238 COMPLEX(WP), INTENT(INOUT) :: A(:,:), B(:,:) 4239 REAL(WP), INTENT(OUT) :: W(:) 4240 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 4241 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4242 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 4243 END SUBROUTINE ZHEGVD_F95 4244 4245 4246 END INTERFACE 4247 4248 INTERFACE LA_SYTRD 4249 4250 SUBROUTINE SSYTRD_F95( A, TAU, UPLO, INFO ) 4251 USE LA_PRECISION, ONLY: WP => SP 4252 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4253 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4254 REAL(WP), INTENT(INOUT) :: A(:,:) 4255 REAL(WP), INTENT(OUT) :: TAU(:) 4256 END SUBROUTINE SSYTRD_F95 4257 4258 SUBROUTINE DSYTRD_F95( A, TAU, UPLO, INFO ) 4259 USE LA_PRECISION, ONLY: WP => DP 4260 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4261 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4262 REAL(WP), INTENT(INOUT) :: A(:,:) 4263 REAL(WP), INTENT(OUT) :: TAU(:) 4264 END SUBROUTINE DSYTRD_F95 4265 4266 END INTERFACE 4267 4268 INTERFACE LA_HETRD 4269 4270 SUBROUTINE CHETRD_F95( A, TAU, UPLO, INFO ) 4271 USE LA_PRECISION, ONLY: WP => SP 4272 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4273 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4274 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4275 COMPLEX(WP), INTENT(OUT) :: TAU(:) 4276 END SUBROUTINE CHETRD_F95 4277 4278 SUBROUTINE ZHETRD_F95( A, TAU, UPLO, INFO ) 4279 USE LA_PRECISION, ONLY: WP => DP 4280 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4281 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4282 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4283 COMPLEX(WP), INTENT(OUT) :: TAU(:) 4284 END SUBROUTINE ZHETRD_F95 4285 4286 END INTERFACE 4287 4288 INTERFACE LA_ORGTR 4289 4290 SUBROUTINE SORGTR_F95( A, TAU, UPLO, INFO ) 4291 USE LA_PRECISION, ONLY: WP => SP 4292 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4293 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4294 REAL(WP), INTENT(IN) :: TAU(:) 4295 REAL(WP), INTENT(INOUT) :: A(:,:) 4296 END SUBROUTINE SORGTR_F95 4297 4298 SUBROUTINE DORGTR_F95( A, TAU, UPLO, INFO ) 4299 USE LA_PRECISION, ONLY: WP => DP 4300 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4301 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4302 REAL(WP), INTENT(IN) :: TAU(:) 4303 REAL(WP), INTENT(INOUT) :: A(:,:) 4304 END SUBROUTINE DORGTR_F95 4305 4306 END INTERFACE 4307 4308 INTERFACE LA_UNGTR 4309 4310 SUBROUTINE CUNGTR_F95( A, TAU, UPLO, INFO ) 4311 USE LA_PRECISION, ONLY: WP => SP 4312 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4313 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4314 COMPLEX(WP), INTENT(IN) :: TAU(:) 4315 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4316 END SUBROUTINE CUNGTR_F95 4317 4318 SUBROUTINE ZUNGTR_F95( A, TAU, UPLO, INFO ) 4319 USE LA_PRECISION, ONLY: WP => DP 4320 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 4321 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4322 COMPLEX(WP), INTENT(IN) :: TAU(:) 4323 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4324 END SUBROUTINE ZUNGTR_F95 4325 4326 END INTERFACE 4327 4328 INTERFACE LA_POTRF 4329 4330 SUBROUTINE SPOTRF_F95( A, UPLO, RCOND, NORM, INFO ) 4331 USE LA_PRECISION, ONLY: WP => SP 4332 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM, UPLO 4333 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4334 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 4335 REAL(WP), INTENT(INOUT) :: A(:,:) 4336 END SUBROUTINE SPOTRF_F95 4337 4338 SUBROUTINE DPOTRF_F95( A, UPLO, RCOND, NORM, INFO ) 4339 USE LA_PRECISION, ONLY: WP => DP 4340 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM, UPLO 4341 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4342 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 4343 REAL(WP), INTENT(INOUT) :: A(:,:) 4344 END SUBROUTINE DPOTRF_F95 4345 4346 SUBROUTINE CPOTRF_F95( A, UPLO, RCOND, NORM, INFO ) 4347 USE LA_PRECISION, ONLY: WP => SP 4348 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM, UPLO 4349 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4350 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 4351 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4352 END SUBROUTINE CPOTRF_F95 4353 4354 SUBROUTINE ZPOTRF_F95( A, UPLO, RCOND, NORM, INFO ) 4355 USE LA_PRECISION, ONLY: WP => DP 4356 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM, UPLO 4357 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4358 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 4359 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4360 END SUBROUTINE ZPOTRF_F95 4361 4362 END INTERFACE 4363 4364 INTERFACE LA_LAGGE 4365 4366 SUBROUTINE SLAGGE_F95( A, KL, KU, D, ISEED, INFO ) 4367 USE LA_PRECISION, ONLY: WP => SP 4368 INTEGER, INTENT(IN), OPTIONAL :: KL, KU 4369 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4370 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: ISEED(4) 4371 REAL(WP), INTENT(IN), OPTIONAL, TARGET :: D(:) 4372 REAL(WP), INTENT(OUT) :: A(:,:) 4373 END SUBROUTINE SLAGGE_F95 4374 4375 SUBROUTINE DLAGGE_F95( A, KL, KU, D, ISEED, INFO ) 4376 USE LA_PRECISION, ONLY: WP => DP 4377 INTEGER, INTENT(IN), OPTIONAL :: KL, KU 4378 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4379 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: ISEED(4) 4380 REAL(WP), INTENT(IN), OPTIONAL, TARGET :: D(:) 4381 REAL(WP), INTENT(OUT) :: A(:,:) 4382 END SUBROUTINE DLAGGE_F95 4383 4384 SUBROUTINE CLAGGE_F95( A, KL, KU, D, ISEED, INFO ) 4385 USE LA_PRECISION, ONLY: WP => SP 4386 INTEGER, INTENT(IN), OPTIONAL :: KL, KU 4387 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4388 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: ISEED(4) 4389 REAL(WP), INTENT(IN), OPTIONAL, TARGET :: D(:) 4390 COMPLEX(WP), INTENT(OUT) :: A(:,:) 4391 END SUBROUTINE CLAGGE_F95 4392 4393 SUBROUTINE ZLAGGE_F95( A, KL, KU, D, ISEED, INFO ) 4394 USE LA_PRECISION, ONLY: WP => DP 4395 INTEGER, INTENT(IN), OPTIONAL :: KL, KU 4396 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4397 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: ISEED(4) 4398 REAL(WP), INTENT(IN), OPTIONAL, TARGET :: D(:) 4399 COMPLEX(WP), INTENT(OUT) :: A(:,:) 4400 END SUBROUTINE ZLAGGE_F95 4401 4402 END INTERFACE 4403 4404 INTERFACE LA_LANGE 4405 4406 FUNCTION SLANGE_F95( A, NORM, INFO ) 4407 USE LA_PRECISION, ONLY: WP => SP 4408 REAL(WP) :: SLANGE_F95 4409 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4410 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4411 REAL(WP), INTENT(IN) :: A(:,:) 4412 END FUNCTION SLANGE_F95 4413 4414 FUNCTION SLANGE1_F95( A, NORM, INFO ) 4415 USE LA_PRECISION, ONLY: WP => SP 4416 REAL(WP) :: SLANGE1_F95 4417 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4418 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4419 REAL(WP), INTENT(IN) :: A(:) 4420 END FUNCTION SLANGE1_F95 4421 4422 FUNCTION DLANGE_F95( A, NORM, INFO ) 4423 USE LA_PRECISION, ONLY: WP => DP 4424 REAL(WP) :: DLANGE_F95 4425 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4426 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4427 REAL(WP), INTENT(IN) :: A(:,:) 4428 END FUNCTION DLANGE_F95 4429 4430 FUNCTION DLANGE1_F95( A, NORM, INFO ) 4431 USE LA_PRECISION, ONLY: WP => DP 4432 REAL(WP) :: DLANGE1_F95 4433 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4434 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4435 REAL(WP), INTENT(IN) :: A(:) 4436 END FUNCTION DLANGE1_F95 4437 4438 FUNCTION CLANGE_F95( A, NORM, INFO ) 4439 USE LA_PRECISION, ONLY: WP => SP 4440 REAL(WP) :: CLANGE_F95 4441 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4442 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4443 COMPLEX(WP), INTENT(IN) :: A(:,:) 4444 END FUNCTION CLANGE_F95 4445 4446 FUNCTION CLANGE1_F95( A, NORM, INFO ) 4447 USE LA_PRECISION, ONLY: WP => SP 4448 REAL(WP) :: CLANGE1_F95 4449 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4450 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4451 COMPLEX(WP), INTENT(IN) :: A(:) 4452 END FUNCTION CLANGE1_F95 4453 4454 FUNCTION ZLANGE_F95( A, NORM, INFO ) 4455 USE LA_PRECISION, ONLY: WP => DP 4456 REAL(WP) :: ZLANGE_F95 4457 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4458 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4459 COMPLEX(WP), INTENT(IN) :: A(:,:) 4460 END FUNCTION ZLANGE_F95 4461 4462 FUNCTION ZLANGE1_F95( A, NORM, INFO ) 4463 USE LA_PRECISION, ONLY: WP => DP 4464 REAL(WP) :: ZLANGE1_F95 4465 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 4466 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4467 COMPLEX(WP), INTENT(IN) :: A(:) 4468 END FUNCTION ZLANGE1_F95 4469 4470 END INTERFACE 4471 4472 INTERFACE LA_GESDD 4473 4474 SUBROUTINE SGESDD_F95(A, S, U, VT, WW, JOB, INFO ) 4475 USE LA_PRECISION, ONLY: WP => SP 4476 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 4477 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4478 REAL(WP), INTENT(INOUT) :: A(:,:) 4479 REAL(WP), INTENT(OUT) :: S(:) 4480 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 4481 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 4482 END SUBROUTINE SGESDD_F95 4483 4484 SUBROUTINE DGESDD_F95(A, S, U, VT, WW, JOB, INFO ) 4485 USE LA_PRECISION, ONLY: WP => DP 4486 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 4487 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4488 REAL(WP), INTENT(INOUT) :: A(:,:) 4489 REAL(WP), INTENT(OUT) :: S(:) 4490 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 4491 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 4492 END SUBROUTINE DGESDD_F95 4493 4494 SUBROUTINE CGESDD_F95(A, S, U, VT, WW, JOB, INFO ) 4495 USE LA_PRECISION, ONLY: WP => SP 4496 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 4497 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4498 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4499 REAL(WP), INTENT(OUT) :: S(:) 4500 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 4501 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 4502 END SUBROUTINE CGESDD_F95 4503 4504 SUBROUTINE ZGESDD_F95(A, S, U, VT, WW, JOB, INFO ) 4505 USE LA_PRECISION, ONLY: WP => DP 4506 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 4507 INTEGER, INTENT(OUT), OPTIONAL :: INFO 4508 COMPLEX(WP), INTENT(INOUT) :: A(:,:) 4509 REAL(WP), INTENT(OUT) :: S(:) 4510 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 4511 COMPLEX(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 4512 END SUBROUTINE ZGESDD_F95 4513 4514 END INTERFACE 4515 4516 END MODULE F95_LAPACK 4517