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 END INTERFACE 19 20 INTERFACE LA_GGSVD 21 22 SUBROUTINE SGGSVD_F95( A, B, ALPHA, BETA, K, L, U, V, Q, IWORK, & 23 & INFO ) 24 USE LA_PRECISION, ONLY: WP => SP 25 INTEGER, INTENT(OUT), OPTIONAL :: INFO, K, L 26 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 27 REAL(WP), INTENT(OUT) :: ALPHA(:), BETA(:) 28 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), V(:,:), & 29 & Q(:,:) 30 INTEGER, INTENT(OUT), OPTIONAL :: IWORK(:) 31 END SUBROUTINE SGGSVD_F95 32 33 END INTERFACE 34 35 INTERFACE LA_GEGV 36 37 SUBROUTINE SGEGV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 38 USE LA_PRECISION, ONLY: WP => SP 39 INTEGER, INTENT(OUT), OPTIONAL :: INFO 40 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 41 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 42 & BETA(:) 43 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 44 END SUBROUTINE SGEGV_F95 45 46 47 END INTERFACE 48 49 INTERFACE LA_GEGS 50 51 SUBROUTINE SGEGS_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 52 & INFO ) 53 USE LA_PRECISION, ONLY: WP => SP 54 INTEGER, INTENT(OUT), OPTIONAL :: INFO 55 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 56 REAL(WP), INTENT(OUT), OPTIONAL :: ALPHAR(:), ALPHAI(:), & 57 & BETA(:) 58 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VSL(:,:), VSR(:,:) 59 END SUBROUTINE SGEGS_F95 60 61 62 END INTERFACE 63 64 INTERFACE LA_SBGVX 65 66 SUBROUTINE SSBGVX_F95( AB, BB, W, UPLO, Z, VL, VU, IL, IU, M, & 67 & IFAIL, Q, ABSTOL, INFO ) 68 USE LA_PRECISION, ONLY: WP => SP 69 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 70 REAL(WP), INTENT(OUT) :: W(:) 71 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 72 INTEGER, INTENT(OUT), OPTIONAL :: INFO 73 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:), Q(:,:) 74 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 75 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 76 INTEGER, INTENT(OUT), OPTIONAL :: M 77 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 78 END SUBROUTINE SSBGVX_F95 79 80 END INTERFACE 81 82 83 INTERFACE LA_SBGVD 84 85 86 SUBROUTINE SSBGVD_F95( AB, BB, W, UPLO, Z, INFO ) 87 USE LA_PRECISION, ONLY: WP => SP 88 REAL(WP), INTENT(INOUT) :: AB(:,:), BB(:,:) 89 REAL(WP), INTENT(OUT) :: W(:) 90 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 91 INTEGER, INTENT(OUT), OPTIONAL :: INFO 92 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 93 END SUBROUTINE SSBGVD_F95 94 95 END INTERFACE 96 97 98 INTERFACE LA_SBGV 99 100 SUBROUTINE SSBGV_F95( A, B, W, UPLO, Z, INFO ) 101 USE LA_PRECISION, ONLY: WP => SP 102 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 103 INTEGER, INTENT(OUT), OPTIONAL :: INFO 104 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 105 REAL(WP), INTENT(OUT) :: W(:) 106 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 107 END SUBROUTINE SSBGV_F95 108 109 END INTERFACE 110 111 112 INTERFACE LA_SPGVX 113 114 SUBROUTINE SSPGVX_F95( AP, BP, W, ITYPE, UPLO, Z, VL, VU, IL, & 115 & IU, M, IFAIL, ABSTOL, INFO ) 116 USE LA_PRECISION, ONLY: WP => SP 117 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 118 REAL(WP), INTENT(OUT) :: W(:) 119 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 120 INTEGER, INTENT(OUT), OPTIONAL :: INFO 121 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 122 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 123 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 124 INTEGER, INTENT(OUT), OPTIONAL :: M 125 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 126 END SUBROUTINE SSPGVX_F95 127 128 END INTERFACE 129 130 131 INTERFACE LA_SPGVD 132 133 SUBROUTINE SSPGVD_F95( AP, BP, W, ITYPE, UPLO, Z, INFO ) 134 USE LA_PRECISION, ONLY: WP => SP 135 REAL(WP), INTENT(INOUT) :: AP(:), BP(:) 136 REAL(WP), INTENT(OUT) :: W(:) 137 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 138 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 139 INTEGER, INTENT(OUT), OPTIONAL :: INFO 140 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: Z(:,:) 141 END SUBROUTINE SSPGVD_F95 142 143 END INTERFACE 144 145 146 INTERFACE LA_SPGV 147 148 SUBROUTINE SSPGV_F95( A, B, W, ITYPE, UPLO, Z, INFO ) 149 USE LA_PRECISION, ONLY: WP => SP 150 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 151 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 152 INTEGER, INTENT(OUT), OPTIONAL :: INFO 153 REAL(WP), INTENT(INOUT) :: A(:), B(:) 154 REAL(WP), INTENT(OUT) :: W(:) 155 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 156 END SUBROUTINE SSPGV_F95 157 158 END INTERFACE 159 160 161 INTERFACE LA_GESVD 162 163 SUBROUTINE SGESVD_F95( A, S, U, VT, WW, JOB, INFO ) 164 USE LA_PRECISION, ONLY: WP => SP 165 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 166 INTEGER, INTENT(OUT), OPTIONAL :: INFO 167 REAL(WP), INTENT(INOUT) :: A(:,:) 168 REAL(WP), INTENT(OUT) :: S(:) 169 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 170 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 171 END SUBROUTINE SGESVD_F95 172 173 END INTERFACE 174 175 INTERFACE LA_GEEVX 176 177 SUBROUTINE SGEEVX_F95( A, WR, WI, VL, VR, BALANC, ILO, IHI, & 178 & SCALE, ABNRM, RCONDE, RCONDV, INFO ) 179 USE LA_PRECISION, ONLY: WP => SP 180 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 181 INTEGER, INTENT(OUT), OPTIONAL :: INFO, ILO, IHI 182 REAL(WP), INTENT(INOUT) :: A(:,:) 183 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM 184 REAL(WP), INTENT(OUT), OPTIONAL :: SCALE(:), RCONDE(:), & 185 & RCONDV(:) 186 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 187 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 188 END SUBROUTINE SGEEVX_F95 189 190 END INTERFACE 191 192 INTERFACE LA_GGEVX 193 194 SUBROUTINE SGGEVX_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, & 195 & BALANC, ILO, IHI, LSCALE, RSCALE, ABNRM, & 196 & BBNRM, RCONDE, RCONDV, INFO ) 197 USE LA_PRECISION, ONLY: WP => SP 198 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: BALANC 199 INTEGER, INTENT(OUT), OPTIONAL :: INFO 200 INTEGER, INTENT(OUT), OPTIONAL :: ILO,IHI 201 REAL(WP), INTENT(OUT), OPTIONAL :: ABNRM, BBNRM 202 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 203 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:) 204 REAL(WP), INTENT(OUT) :: BETA(:) 205 REAL(WP), INTENT(OUT), OPTIONAL ::LSCALE(:), RSCALE(:), & 206 & RCONDE(:), RCONDV(:) 207 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 208 END SUBROUTINE SGGEVX_F95 209 210 END INTERFACE 211 212 INTERFACE LA_GGEV 213 214 SUBROUTINE SGGEV_F95( A, B, ALPHAR, ALPHAI, BETA, VL, VR, INFO ) 215 USE LA_PRECISION, ONLY: WP => SP 216 INTEGER, INTENT(OUT), OPTIONAL :: INFO 217 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 218 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 219 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: VL(:,:), VR(:,:) 220 END SUBROUTINE SGGEV_F95 221 222 END INTERFACE 223 224 INTERFACE LA_GEEV 225 226 SUBROUTINE SGEEV_F95( A, WR, WI, VL, VR, INFO ) 227 USE LA_PRECISION, ONLY: WP => SP 228 INTEGER, INTENT(OUT), OPTIONAL :: INFO 229 REAL(WP), INTENT(INOUT) :: A(:,:) 230 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 231 REAL(WP), INTENT(OUT), OPTIONAL :: VL(:,:), VR(:,:) 232 END SUBROUTINE SGEEV_F95 233 234 END INTERFACE 235 236 INTERFACE LA_GEESX 237 238 SUBROUTINE SGEESX_F95( A, WR, WI, VS, SELECT, SDIM, RCONDE, & 239 & RCONDV, INFO ) 240 USE LA_PRECISION, ONLY: WP => SP 241! USE LA_EXTERNAL 242 INTERFACE 243 LOGICAL FUNCTION SELECT(WR, WI) 244 USE LA_PRECISION, ONLY: WP => SP 245 REAL(WP), INTENT(IN) :: WR, WI 246 END FUNCTION SELECT 247 END INTERFACE 248 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 249 REAL(WP), INTENT(INOUT) :: A(:,:) 250 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 251 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE, RCONDV 252 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 253 OPTIONAL :: SELECT 254 END SUBROUTINE SGEESX_F95 255 256 END INTERFACE 257 258 INTERFACE LA_GGESX 259 260 SUBROUTINE SGGESX_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 261 & SELECT, SDIM, RCONDE, RCONDV, INFO ) 262 USE LA_PRECISION, ONLY: WP => SP 263 INTEGER, INTENT(OUT), OPTIONAL :: INFO 264 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 265 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 266 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 267 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 268 INTERFACE 269 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 270 USE LA_PRECISION, ONLY: WP => SP 271 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 272 END FUNCTION SELECT 273 END INTERFACE 274 OPTIONAL :: SELECT 275 REAL(WP), INTENT(OUT), OPTIONAL :: RCONDE(2), RCONDV(2) 276 END SUBROUTINE SGGESX_F95 277 278 END INTERFACE 279 280 281 INTERFACE LA_GGES 282 283 SUBROUTINE SGGES_F95( A, B, ALPHAR, ALPHAI, BETA, VSL, VSR, & 284 & SELECT, SDIM, INFO ) 285 USE LA_PRECISION, ONLY: WP => SP 286 INTEGER, INTENT(OUT), OPTIONAL :: INFO 287 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 288 INTEGER, INTENT(OUT), OPTIONAL :: SDIM 289 REAL(WP), INTENT(OUT) :: ALPHAR(:), ALPHAI(:), BETA(:) 290 REAL(WP), INTENT(OUT), OPTIONAL :: VSL(:,:), VSR(:,:) 291 INTERFACE 292 LOGICAL FUNCTION SELECT(ALPHAR, ALPHAI, BETA) 293 USE LA_PRECISION, ONLY: WP => SP 294 REAL(WP), INTENT(IN) :: ALPHAR, ALPHAI, BETA 295 END FUNCTION SELECT 296 END INTERFACE 297 OPTIONAL :: SELECT 298 END SUBROUTINE SGGES_F95 299 300 END INTERFACE 301 302 INTERFACE LA_GEES 303 304 SUBROUTINE SGEES_F95( A, WR, WI, VS, SELECT, SDIM, INFO ) 305 USE LA_PRECISION, ONLY: WP => SP 306! USE LA_EXTERNAL, ONLY: SELECT 307 INTERFACE 308 LOGICAL FUNCTION SELECT(WR, WI) 309 USE LA_PRECISION, ONLY: WP => SP 310 REAL(WP), INTENT(IN) :: WR, WI 311 END FUNCTION SELECT 312 END INTERFACE 313 314 INTEGER, INTENT(OUT), OPTIONAL :: INFO, SDIM 315 REAL(WP), INTENT(INOUT) :: A(:,:) 316 REAL(WP), INTENT(OUT) :: WR(:), WI(:) 317 REAL(WP), INTENT(OUT), OPTIONAL :: VS(:,:) 318 OPTIONAL :: SELECT 319 END SUBROUTINE SGEES_F95 320 321 END INTERFACE 322 323 INTERFACE LA_STEVR 324 325 SUBROUTINE SSTEVR_F95( D, E, W, Z, VL, VU, IL, IU, M, ISUPPZ, & 326 & ABSTOL, INFO ) 327 USE LA_PRECISION, ONLY: WP => SP 328 REAL(WP), INTENT(INOUT) :: D(:), E(:) 329 REAL(WP), INTENT(OUT) :: W(:) 330 INTEGER, INTENT(OUT), OPTIONAL :: INFO 331 REAL(WP), INTENT(IN), OPTIONAL:: ABSTOL, VL, VU 332 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 333 INTEGER, INTENT(OUT), OPTIONAL :: M 334 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 335 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 336 END SUBROUTINE SSTEVR_F95 337 338 END INTERFACE 339 340 INTERFACE LA_STEVX 341 342 SUBROUTINE SSTEVX_F95( D, E, W, Z, VL, VU, IL, IU, M, IFAIL, & 343 & ABSTOL, INFO ) 344 USE LA_PRECISION, ONLY: WP => SP 345 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 346 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 347 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 348 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 349 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 350 REAL(WP), INTENT(INOUT) :: D(:), E(:) 351 REAL(WP), INTENT(OUT) :: W(:) 352 END SUBROUTINE SSTEVX_F95 353 354 END INTERFACE 355 356 INTERFACE LA_STEVD 357 358 SUBROUTINE SSTEVD_F95( D, E, Z, INFO ) 359 USE LA_PRECISION, ONLY: WP => SP 360 REAL(WP), INTENT(INOUT) :: D(:), E(:) 361 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 362 INTEGER, INTENT(OUT), OPTIONAL :: INFO 363 END SUBROUTINE SSTEVD_F95 364 365 END INTERFACE 366 367 INTERFACE LA_STEV 368 369 SUBROUTINE SSTEV_F95( D, E, Z, INFO ) 370 USE LA_PRECISION, ONLY: WP => SP 371 REAL(WP), INTENT(INOUT) :: D(:), E(:) 372 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 373 INTEGER, INTENT(OUT), OPTIONAL :: INFO 374 END SUBROUTINE SSTEV_F95 375 376 END INTERFACE 377 378 INTERFACE LA_SBEVX 379 380 SUBROUTINE SSBEVX_F95( AB, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 381 & Q, ABSTOL, INFO ) 382 USE LA_PRECISION, ONLY: WP => SP 383 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 384 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 385 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 386 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 387 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 388 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:), Q(:,:) 389 REAL(WP), INTENT(INOUT) :: AB(:,:) 390 REAL(WP), INTENT(OUT) :: W(:) 391 END SUBROUTINE SSBEVX_F95 392 393 END INTERFACE 394 395 396 INTERFACE LA_SBEVD 397 398 SUBROUTINE SSBEVD_F95( AB, W, UPLO, Z, INFO ) 399 USE LA_PRECISION, ONLY: WP => SP 400 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 401 INTEGER, INTENT(OUT), OPTIONAL :: INFO 402 REAL(WP), INTENT(INOUT) :: AB(:,:) 403 REAL(WP), INTENT(OUT) :: W(:) 404 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 405 END SUBROUTINE SSBEVD_F95 406 407 END INTERFACE 408 409 410 INTERFACE LA_SBEV 411 412 SUBROUTINE SSBEV_F95( AB, W, UPLO, Z, INFO ) 413 USE LA_PRECISION, ONLY: WP => SP 414 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 415 INTEGER, INTENT(OUT), OPTIONAL :: INFO 416 REAL(WP), INTENT(INOUT) :: AB(:,:) 417 REAL(WP), INTENT(OUT) :: W(:) 418 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 419 END SUBROUTINE SSBEV_F95 420 421 END INTERFACE 422 423 424 INTERFACE LA_SPEVX 425 426 SUBROUTINE SSPEVX_F95( AP, W, UPLO, Z, VL, VU, IL, IU, M, IFAIL, & 427 & ABSTOL, INFO ) 428 USE LA_PRECISION, ONLY: WP => SP 429 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 430 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 431 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 432 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 433 INTEGER, INTENT(OUT), OPTIONAL :: IFAIL(:) 434 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 435 REAL(WP), INTENT(INOUT) :: AP(:) 436 REAL(WP), INTENT(OUT) :: W(:) 437 END SUBROUTINE SSPEVX_F95 438 439 END INTERFACE 440 441 442 INTERFACE LA_SPEVD 443 444 SUBROUTINE SSPEVD_F95( AP, W, UPLO, Z, INFO ) 445 USE LA_PRECISION, ONLY: WP => SP 446 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 447 INTEGER, INTENT(OUT), OPTIONAL :: INFO 448 REAL(WP), INTENT(INOUT) :: AP(:) 449 REAL(WP), INTENT(OUT) :: W(:) 450 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 451 END SUBROUTINE SSPEVD_F95 452 453 END INTERFACE 454 455 456 INTERFACE LA_SPEV 457 458 SUBROUTINE SSPEV_F95( AP, W, UPLO, Z, INFO ) 459 USE LA_PRECISION, ONLY: WP => SP 460 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 461 INTEGER, INTENT(OUT), OPTIONAL :: INFO 462 REAL(WP), INTENT(INOUT) :: AP(:) 463 REAL(WP), INTENT(OUT) :: W(:) 464 REAL(WP), INTENT(OUT), OPTIONAL :: Z(:,:) 465 END SUBROUTINE SSPEV_F95 466 467 END INTERFACE 468 469 470 INTERFACE LA_GGGLM 471 472 SUBROUTINE SGGGLM_F95( A, B, D, X, Y, INFO ) 473 USE LA_PRECISION, ONLY: WP => SP 474 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), D(:) 475 REAL(WP), INTENT( OUT ) :: X(:), Y(:) 476 INTEGER, INTENT(OUT), OPTIONAL :: INFO 477 END SUBROUTINE SGGGLM_F95 478 479 END INTERFACE 480 481 INTERFACE LA_GGLSE 482 483 SUBROUTINE SGGLSE_F95( A, B, C, D, X, INFO ) 484 USE LA_PRECISION, ONLY: WP => SP 485 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:), C(:), D(:) 486 REAL(WP), INTENT( OUT ) :: X(:) 487 INTEGER, INTENT(OUT), OPTIONAL :: INFO 488 END SUBROUTINE SGGLSE_F95 489 490 END INTERFACE 491 492 INTERFACE LA_GELSY 493 494 SUBROUTINE SGELSY_F95( A, B, RANK, JPVT, RCOND, INFO ) 495 USE LA_PRECISION, ONLY: WP => SP 496 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 497 INTEGER, INTENT(OUT), OPTIONAL :: RANK 498 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 499 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 500 INTEGER, INTENT(OUT), OPTIONAL :: INFO 501 END SUBROUTINE SGELSY_F95 502 503 SUBROUTINE SGELSY1_F95( A, B, RANK, JPVT, RCOND, INFO ) 504 USE LA_PRECISION, ONLY: WP => SP 505 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 506 INTEGER, INTENT(OUT), OPTIONAL :: RANK 507 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: JPVT(:) 508 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 509 INTEGER, INTENT(OUT), OPTIONAL :: INFO 510 END SUBROUTINE SGELSY1_F95 511 512 END INTERFACE 513 514 INTERFACE LA_GELSD 515 516 SUBROUTINE SGELSD_F95( A, B, RANK, S, RCOND, INFO ) 517 USE LA_PRECISION, ONLY: WP => SP 518 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 519 INTEGER, INTENT(IN), OPTIONAL :: RANK 520 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 521 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 522 INTEGER, INTENT(OUT), OPTIONAL :: INFO 523 END SUBROUTINE SGELSD_F95 524 525 SUBROUTINE SGELSD1_F95( A, B, RANK, S, RCOND, INFO ) 526 USE LA_PRECISION, ONLY: WP => SP 527 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 528 INTEGER, INTENT(IN), OPTIONAL :: RANK 529 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 530 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 531 INTEGER, INTENT(OUT), OPTIONAL :: INFO 532 END SUBROUTINE SGELSD1_F95 533 534 END INTERFACE 535 536 INTERFACE LA_GELSX 537 538 SUBROUTINE SGELSX_F95( A, B, RANK, JPVT, RCOND, INFO ) 539 USE LA_PRECISION, ONLY: WP => SP 540 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 541 INTEGER, INTENT(IN), OPTIONAL :: RANK 542 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 543 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 544 INTEGER, INTENT(OUT), OPTIONAL :: INFO 545 END SUBROUTINE SGELSX_F95 546 547 SUBROUTINE SGELSX1_F95( A, B, RANK, JPVT, RCOND, INFO ) 548 USE LA_PRECISION, ONLY: WP => SP 549 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 550 INTEGER, INTENT(IN), OPTIONAL :: RANK 551 INTEGER, INTENT(OUT), OPTIONAL :: JPVT(:) 552 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 553 INTEGER, INTENT(OUT), OPTIONAL :: INFO 554 END SUBROUTINE SGELSX1_F95 555 556 END INTERFACE 557 558 INTERFACE LA_GELSS 559 560 SUBROUTINE SGELSS_F95( A, B, RANK, S, RCOND, INFO ) 561 USE LA_PRECISION, ONLY: WP => SP 562 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 563 INTEGER, INTENT(IN), OPTIONAL :: RANK 564 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 565 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 566 INTEGER, INTENT(OUT), OPTIONAL :: INFO 567 END SUBROUTINE SGELSS_F95 568 569 SUBROUTINE SGELSS1_F95( A, B, RANK, S, RCOND, INFO ) 570 USE LA_PRECISION, ONLY: WP => SP 571 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 572 INTEGER, INTENT(IN), OPTIONAL :: RANK 573 REAL(WP), INTENT(OUT), OPTIONAL :: S(:) 574 REAL(WP), INTENT(IN), OPTIONAL :: RCOND 575 INTEGER, INTENT(OUT), OPTIONAL :: INFO 576 END SUBROUTINE SGELSS1_F95 577 578 END INTERFACE 579 580 INTERFACE LA_GELS 581 582 SUBROUTINE SGELS_F95( A, B, TRANS, INFO ) 583 USE LA_PRECISION, ONLY: WP => SP 584 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 585 INTEGER, INTENT(OUT), OPTIONAL :: INFO 586 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:,:) 587 END SUBROUTINE SGELS_F95 588 589 SUBROUTINE SGELS1_F95( A, B, TRANS, INFO ) 590 USE LA_PRECISION, ONLY: WP => SP 591 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 592 INTEGER, INTENT(OUT), OPTIONAL :: INFO 593 REAL(WP), INTENT( INOUT ) :: A( :, : ), B(:) 594 END SUBROUTINE SGELS1_F95 595 596 END INTERFACE 597 598 INTERFACE LA_SPSVX 599 600 SUBROUTINE SSPSVX_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 601 & BERR, RCOND, INFO ) 602 USE LA_PRECISION, ONLY: WP => SP 603 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 604 INTEGER, INTENT(OUT), OPTIONAL :: INFO 605 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 606 REAL(WP), INTENT(IN) :: AP(:), B(:,:) 607 REAL(WP), INTENT(OUT) :: X(:,:) 608 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 609 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 610 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 611 END SUBROUTINE SSPSVX_F95 612 613 SUBROUTINE SSPSVX1_F95( AP, B, X, UPLO, AFP, IPIV, FACT, FERR, & 614 & BERR, RCOND, INFO ) 615 USE LA_PRECISION, ONLY: WP => SP 616 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 617 INTEGER, INTENT(OUT), OPTIONAL :: INFO 618 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 619 REAL(WP), INTENT(IN) :: AP(:), B(:) 620 REAL(WP), INTENT(OUT) :: X(:) 621 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 622 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 623 END SUBROUTINE SSPSVX1_F95 624 625 END INTERFACE 626 627 628 INTERFACE LA_SYSVX 629 630 SUBROUTINE SSYSVX_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, BERR,& 631 & RCOND, INFO ) 632 USE LA_PRECISION, ONLY: WP => SP 633 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 634 INTEGER, INTENT(OUT), OPTIONAL :: INFO 635 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 636 REAL(WP), INTENT(IN) :: A(:,:), B(:,:) 637 REAL(WP), INTENT(OUT) :: X(:,:) 638 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 639 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 640 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 641 END SUBROUTINE SSYSVX_F95 642 643 SUBROUTINE SSYSVX1_F95( A, B, X, UPLO, AF, IPIV, FACT, FERR, & 644 & BERR, RCOND, INFO ) 645 USE LA_PRECISION, ONLY: WP => SP 646 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 647 INTEGER, INTENT(OUT), OPTIONAL :: INFO 648 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 649 REAL(WP), INTENT(IN) :: A(:,:), B(:) 650 REAL(WP), INTENT(OUT) :: X(:) 651 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 652 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 653 END SUBROUTINE SSYSVX1_F95 654 655 END INTERFACE 656 657 658 INTERFACE LA_PTSVX 659 660 SUBROUTINE SPTSVX_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 661 & RCOND, INFO ) 662 USE LA_PRECISION, ONLY: WP => SP 663 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 664 INTEGER, INTENT(OUT), OPTIONAL :: INFO 665 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 666 REAL(WP), INTENT(IN) :: D(:) 667 REAL(WP), INTENT(IN) :: E(:), B(:,:) 668 REAL(WP), INTENT(OUT) :: X(:,:) 669 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 670 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 671 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 672 END SUBROUTINE SPTSVX_F95 673 674 SUBROUTINE SPTSVX1_F95( D, E, B, X, DF, EF, FACT, FERR, BERR, & 675 & RCOND, INFO ) 676 USE LA_PRECISION, ONLY: WP => SP 677 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: FACT 678 INTEGER, INTENT(OUT), OPTIONAL :: INFO 679 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 680 REAL(WP), INTENT(IN) :: D(:) 681 REAL(WP), INTENT(IN) :: E(:), B(:) 682 REAL(WP), INTENT(OUT) :: X(:) 683 REAL(WP), INTENT(INOUT), OPTIONAL :: DF(:) 684 REAL(WP), INTENT(INOUT), OPTIONAL :: EF(:) 685 END SUBROUTINE SPTSVX1_F95 686 687 END INTERFACE 688 689 INTERFACE LA_PBSVX 690 691 SUBROUTINE SPBSVX_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, FERR,& 692 & BERR, RCOND, INFO ) 693 USE LA_PRECISION, ONLY: WP => SP 694 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 695 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 696 INTEGER, INTENT(OUT), OPTIONAL :: INFO 697 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 698 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 699 REAL(WP), INTENT(OUT) :: X(:,:) 700 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 701 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 702 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 703 END SUBROUTINE SPBSVX_F95 704 705 SUBROUTINE SPBSVX1_F95( AB, B, X, UPLO, AFB, FACT, EQUED, S, & 706 & FERR, BERR, RCOND, INFO ) 707 USE LA_PRECISION, ONLY: WP => SP 708 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 709 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 710 INTEGER, INTENT(OUT), OPTIONAL :: INFO 711 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 712 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 713 REAL(WP), INTENT(OUT) :: X(:) 714 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 715 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 716 END SUBROUTINE SPBSVX1_F95 717 718 END INTERFACE 719 720 INTERFACE LA_PPSVX 721 722 SUBROUTINE SPPSVX_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, FERR,& 723 & BERR, RCOND, INFO ) 724 USE LA_PRECISION, ONLY: WP => SP 725 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 726 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 727 INTEGER, INTENT(OUT), OPTIONAL :: INFO 728 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 729 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 730 REAL(WP), INTENT(OUT) :: X(:,:) 731 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 732 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 733 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 734 END SUBROUTINE SPPSVX_F95 735 736 SUBROUTINE SPPSVX1_F95( AP, B, X, UPLO, AFP, FACT, EQUED, S, & 737 & FERR, BERR, RCOND, INFO ) 738 USE LA_PRECISION, ONLY: WP => SP 739 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 740 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 741 INTEGER, INTENT(OUT), OPTIONAL :: INFO 742 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 743 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 744 REAL(WP), INTENT(OUT) :: X(:) 745 REAL(WP), INTENT(INOUT), OPTIONAL :: AFP(:) 746 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 747 END SUBROUTINE SPPSVX1_F95 748 749 END INTERFACE 750 751 INTERFACE LA_POSVX 752 753 SUBROUTINE SPOSVX_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 754 & BERR, RCOND, INFO ) 755 USE LA_PRECISION, ONLY: WP => SP 756 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 757 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 758 INTEGER, INTENT(OUT), OPTIONAL :: INFO 759 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 760 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 761 REAL(WP), INTENT(OUT) :: X(:,:) 762 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 763 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 764 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 765 END SUBROUTINE SPOSVX_F95 766 767 SUBROUTINE SPOSVX1_F95( A, B, X, UPLO, AF, FACT, EQUED, S, FERR, & 768 & BERR, RCOND, INFO ) 769 USE LA_PRECISION, ONLY: WP => SP 770 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO, FACT 771 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 772 INTEGER, INTENT(OUT), OPTIONAL :: INFO 773 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 774 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 775 REAL(WP), INTENT(OUT) :: X(:) 776 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 777 REAL(WP), INTENT(INOUT), OPTIONAL :: S(:) 778 END SUBROUTINE SPOSVX1_F95 779 780 END INTERFACE 781 782 INTERFACE LA_GTSVX 783 784 SUBROUTINE SGTSVX_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV, & 785 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 786 USE LA_PRECISION, ONLY: WP => SP 787 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 788 INTEGER, INTENT(OUT), OPTIONAL :: INFO 789 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 790 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:,:) 791 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 792 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 793 & DU2(:) 794 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 795 REAL(WP), INTENT(OUT) :: X(:,:) 796 END SUBROUTINE SGTSVX_F95 797 798 SUBROUTINE SGTSVX1_F95( DL, D, DU, B, X, DLF, DF, DUF, DU2, IPIV,& 799 & FACT, TRANS, FERR, BERR, RCOND, INFO ) 800 USE LA_PRECISION, ONLY: WP => SP 801 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 802 INTEGER, INTENT(OUT), OPTIONAL :: INFO 803 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, FERR, BERR 804 REAL(WP), INTENT(IN) :: DL(:), D(:), DU(:), B(:) 805 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 806 REAL(WP), INTENT(INOUT), OPTIONAL :: DLF(:), DF(:), DUF(:), & 807 & DU2(:) 808 REAL(WP), INTENT(OUT) :: X(:) 809 END SUBROUTINE SGTSVX1_F95 810 811 END INTERFACE 812 813 INTERFACE LA_GBSVX 814 815 SUBROUTINE SGBSVX_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 816 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 817 & INFO ) 818 USE LA_PRECISION, ONLY: WP => SP 819 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 820 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 821 INTEGER, INTENT(IN), OPTIONAL :: KL 822 INTEGER, INTENT(OUT), OPTIONAL :: INFO 823 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 824 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 825 REAL(WP), INTENT(OUT) :: X(:,:) 826 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 827 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 828 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 829 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 830 END SUBROUTINE SGBSVX_F95 831 832 SUBROUTINE SGBSVX1_F95( A, B, X, KL, AFB, IPIV, FACT, TRANS, & 833 & EQUED, R, C, FERR, BERR, RCOND, RPVGRW, & 834 & INFO ) 835 USE LA_PRECISION, ONLY: WP => SP 836 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 837 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 838 INTEGER, INTENT(IN), OPTIONAL :: KL 839 INTEGER, INTENT(OUT), OPTIONAL :: INFO 840 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW, FERR, BERR 841 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 842 REAL(WP), INTENT(OUT) :: X(:) 843 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 844 REAL(WP), INTENT(INOUT), OPTIONAL :: AFB(:,:) 845 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 846 END SUBROUTINE SGBSVX1_F95 847 848 END INTERFACE 849 850 INTERFACE LA_SPSV 851 852 SUBROUTINE SSPSV_F95( AP, B, UPLO, IPIV, INFO ) 853 USE LA_PRECISION, ONLY: WP => SP 854 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 855 INTEGER, INTENT(OUT), OPTIONAL :: INFO 856 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 857 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 858 END SUBROUTINE SSPSV_F95 859 860 SUBROUTINE SSPSV1_F95( AP, B, UPLO, IPIV, INFO ) 861 USE LA_PRECISION, ONLY: WP => SP 862 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 863 INTEGER, INTENT(OUT), OPTIONAL :: INFO 864 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 865 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 866 END SUBROUTINE SSPSV1_F95 867 868 END INTERFACE 869 870 871 INTERFACE LA_SYSV 872 873 SUBROUTINE SSYSV_F95( A, B, UPLO, IPIV, INFO ) 874 USE LA_PRECISION, ONLY: WP => SP 875 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 876 INTEGER, INTENT(OUT), OPTIONAL :: INFO 877 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 878 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 879 END SUBROUTINE SSYSV_F95 880 881 SUBROUTINE SSYSV1_F95( A, B, UPLO, IPIV, INFO ) 882 USE LA_PRECISION, ONLY: WP => SP 883 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 884 INTEGER, INTENT(OUT), OPTIONAL :: INFO 885 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 886 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 887 END SUBROUTINE SSYSV1_F95 888 889 END INTERFACE 890 891 892 INTERFACE LA_PTSV 893 894 SUBROUTINE SPTSV_F95( D, E, B, INFO ) 895 USE LA_PRECISION, ONLY: WP => SP 896 INTEGER, INTENT(OUT), OPTIONAL :: INFO 897 REAL(WP), INTENT(INOUT) :: D(:) 898 REAL(WP), INTENT(INOUT) :: E(:), B(:,:) 899 END SUBROUTINE SPTSV_F95 900 901 SUBROUTINE SPTSV1_F95( D, E, B, INFO ) 902 USE LA_PRECISION, ONLY: WP => SP 903 INTEGER, INTENT(OUT), OPTIONAL :: INFO 904 REAL(WP), INTENT(INOUT) :: D(:) 905 REAL(WP), INTENT(INOUT) :: E(:), B(:) 906 END SUBROUTINE SPTSV1_F95 907 908 END INTERFACE 909 910 INTERFACE LA_PBSV 911 912 SUBROUTINE SPBSV_F95( AB, B, UPLO, INFO ) 913 USE LA_PRECISION, ONLY: WP => SP 914 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 915 INTEGER, INTENT(OUT), OPTIONAL :: INFO 916 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 917 END SUBROUTINE SPBSV_F95 918 919 SUBROUTINE SPBSV1_F95( AB, B, UPLO, INFO ) 920 USE LA_PRECISION, ONLY: WP => SP 921 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 922 INTEGER, INTENT(OUT), OPTIONAL :: INFO 923 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 924 END SUBROUTINE SPBSV1_F95 925 926 END INTERFACE 927 928 INTERFACE LA_PPSV 929 930 SUBROUTINE SPPSV_F95( AP, B, UPLO, INFO ) 931 USE LA_PRECISION, ONLY: WP => SP 932 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 933 INTEGER, INTENT(OUT), OPTIONAL :: INFO 934 REAL(WP), INTENT(INOUT) :: AP(:), B(:,:) 935 END SUBROUTINE SPPSV_F95 936 937 SUBROUTINE SPPSV1_F95( AP, B, UPLO, INFO ) 938 USE LA_PRECISION, ONLY: WP => SP 939 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 940 INTEGER, INTENT(OUT), OPTIONAL :: INFO 941 REAL(WP), INTENT(INOUT) :: AP(:), B(:) 942 END SUBROUTINE SPPSV1_F95 943 944 END INTERFACE 945 946 INTERFACE LA_POSV 947 948 SUBROUTINE SPOSV_F95( A, B, UPLO, INFO ) 949 USE LA_PRECISION, ONLY: WP => SP 950 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 951 INTEGER, INTENT(OUT), OPTIONAL :: INFO 952 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 953 END SUBROUTINE SPOSV_F95 954 955 SUBROUTINE SPOSV1_F95( A, B, UPLO, INFO ) 956 USE LA_PRECISION, ONLY: WP => SP 957 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 958 INTEGER, INTENT(OUT), OPTIONAL :: INFO 959 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 960 END SUBROUTINE SPOSV1_F95 961 962 END INTERFACE 963 964 INTERFACE LA_GTSV 965 966 SUBROUTINE SGTSV_F95( DL, D, DU, B, INFO ) 967 USE LA_PRECISION, ONLY: WP => SP 968 INTEGER, INTENT(OUT), OPTIONAL :: INFO 969 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:,:) 970 END SUBROUTINE SGTSV_F95 971 972 SUBROUTINE SGTSV1_F95( DL, D, DU, B, INFO ) 973 USE LA_PRECISION, ONLY: WP => SP 974 INTEGER, INTENT(OUT), OPTIONAL :: INFO 975 REAL(WP), INTENT(INOUT) :: DL(:), D(:), DU(:), B(:) 976 END SUBROUTINE SGTSV1_F95 977 978 END INTERFACE 979 980 INTERFACE LA_GBSV 981 982 SUBROUTINE SGBSV_F95( AB, B, KL, IPIV, INFO ) 983 USE LA_PRECISION, ONLY: WP => SP 984 INTEGER, INTENT(IN), OPTIONAL :: KL 985 INTEGER, INTENT(OUT), OPTIONAL :: INFO 986 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 987 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:,:) 988 END SUBROUTINE SGBSV_F95 989 990 SUBROUTINE SGBSV1_F95( AB, B, KL, IPIV, INFO ) 991 USE LA_PRECISION, ONLY: WP => SP 992 INTEGER, INTENT(IN), OPTIONAL :: KL 993 INTEGER, INTENT(OUT), OPTIONAL :: INFO 994 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 995 REAL(WP), INTENT(INOUT) :: AB(:,:), B(:) 996 END SUBROUTINE SGBSV1_F95 997 998 END INTERFACE 999 1000 INTERFACE LA_GESV 1001 1002 SUBROUTINE SGESV_F95( A, B, IPIV, INFO ) 1003 USE LA_PRECISION, ONLY: WP => SP 1004 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1005 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 1006 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1007 END SUBROUTINE SGESV_F95 1008 1009 SUBROUTINE SGESV1_F95( A, B, IPIV, INFO ) 1010 USE LA_PRECISION, ONLY: WP => SP 1011 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1012 INTEGER, INTENT(OUT), OPTIONAL :: IPIV(:) 1013 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 1014 END SUBROUTINE SGESV1_F95 1015 1016 END INTERFACE 1017 1018 INTERFACE LA_GESVX 1019 1020 SUBROUTINE SGESVX_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R, & 1021 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 1022 USE LA_PRECISION, ONLY: WP => SP 1023 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 1024 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 1025 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1026 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 1027 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1028 REAL(WP), INTENT(OUT) :: X(:,:) 1029 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1030 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 1031 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 1032 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1033 END SUBROUTINE SGESVX_F95 1034 1035 SUBROUTINE SGESVX1_F95( A, B, X, AF, IPIV, FACT, TRANS, EQUED, R,& 1036 & C, FERR, BERR, RCOND, RPVGRW, INFO ) 1037 USE LA_PRECISION, ONLY: WP => SP 1038 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS, FACT 1039 CHARACTER(LEN=1), INTENT(INOUT), OPTIONAL :: EQUED 1040 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1041 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND, RPVGRW 1042 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 1043 REAL(WP), INTENT(OUT) :: X(:) 1044 INTEGER, INTENT(INOUT), OPTIONAL :: IPIV(:) 1045 REAL(WP), INTENT(INOUT), OPTIONAL :: AF(:,:) 1046 REAL(WP), INTENT(INOUT), OPTIONAL :: C(:), R(:) 1047 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 1048 END SUBROUTINE SGESVX1_F95 1049 1050 END INTERFACE 1051 1052 INTERFACE LA_GETRF 1053 1054 SUBROUTINE SGETRF_F95( A, IPIV, RCOND, NORM, INFO ) 1055 USE LA_PRECISION, ONLY: WP => SP 1056 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 1057 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1058 REAL(WP), INTENT( OUT ), OPTIONAL :: RCOND 1059 INTEGER, INTENT( OUT ), OPTIONAL :: IPIV( : ) 1060 REAL(WP), INTENT( INOUT ) :: A( :, : ) 1061 END SUBROUTINE SGETRF_F95 1062 1063 END INTERFACE 1064 1065 INTERFACE LA_GETRS 1066 1067 SUBROUTINE SGETRS_F95( A, IPIV, B, TRANS, INFO ) 1068 USE LA_PRECISION, ONLY: WP => SP 1069 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1070 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1071 INTEGER, INTENT(IN) :: IPIV(:) 1072 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1073 END SUBROUTINE SGETRS_F95 1074 1075 SUBROUTINE SGETRS1_F95( A, IPIV, B, TRANS, INFO ) 1076 USE LA_PRECISION, ONLY: WP => SP 1077 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1078 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1079 INTEGER, INTENT(IN) :: IPIV(:) 1080 REAL(WP), INTENT(INOUT) :: A(:,:), B(:) 1081 END SUBROUTINE SGETRS1_F95 1082 1083 END INTERFACE 1084 1085 INTERFACE LA_GETRI 1086 1087 SUBROUTINE SGETRI_F95( A, IPIV, INFO ) 1088 USE LA_PRECISION, ONLY: WP => SP 1089 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1090 INTEGER, INTENT(IN) :: IPIV(:) 1091 REAL(WP), INTENT(INOUT) :: A(:,:) 1092 END SUBROUTINE SGETRI_F95 1093 1094 END INTERFACE 1095 1096 INTERFACE LA_GERFS 1097 1098 SUBROUTINE SGERFS_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 1099 & INFO ) 1100 USE LA_PRECISION, ONLY: WP => SP 1101 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1102 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1103 INTEGER, INTENT(IN) :: IPIV(:) 1104 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:), B(:,:) 1105 REAL(WP), INTENT(INOUT) :: X(:,:) 1106 REAL(WP), INTENT(OUT), OPTIONAL :: FERR(:), BERR(:) 1107 END SUBROUTINE SGERFS_F95 1108 1109 SUBROUTINE SGERFS1_F95( A, AF, IPIV, B, X, TRANS, FERR, BERR, & 1110 & INFO ) 1111 USE LA_PRECISION, ONLY: WP => SP 1112 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: TRANS 1113 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1114 INTEGER, INTENT(IN) :: IPIV(:) 1115 REAL(WP), INTENT(IN) :: A(:,:), AF(:,:) 1116 REAL(WP), INTENT(IN) :: B(:) 1117 REAL(WP), INTENT(INOUT) :: X(:) 1118 REAL(WP), INTENT(OUT), OPTIONAL :: FERR, BERR 1119 END SUBROUTINE SGERFS1_F95 1120 1121 END INTERFACE 1122 1123 INTERFACE LA_GEEQU 1124 1125 SUBROUTINE SGEEQU_F95( A, R, C, ROWCND, COLCND, AMAX, INFO ) 1126 USE LA_PRECISION, ONLY: WP => SP 1127 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1128 REAL(WP), INTENT( OUT ), OPTIONAL :: AMAX, COLCND, ROWCND 1129 REAL(WP), INTENT( IN ) :: A( :, : ) 1130 REAL(WP), INTENT( OUT ) :: C( : ), R( : ) 1131 END SUBROUTINE SGEEQU_F95 1132 1133 END INTERFACE 1134 1135 INTERFACE LA_SYEV 1136 1137 SUBROUTINE SSYEV_F95( A, W, JOBZ, UPLO, INFO ) 1138 USE LA_PRECISION, ONLY: WP => SP 1139 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1140 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1141 REAL(WP), INTENT(INOUT) :: A(:,:) 1142 REAL(WP), INTENT(OUT) :: W(:) 1143 END SUBROUTINE SSYEV_F95 1144 1145 END INTERFACE 1146 1147 1148 INTERFACE LA_SYEVD 1149 1150 SUBROUTINE SSYEVD_F95( A, W, JOBZ, UPLO, INFO ) 1151 USE LA_PRECISION, ONLY: WP => SP 1152 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1153 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1154 REAL(WP), INTENT(INOUT) :: A(:,:) 1155 REAL(WP), INTENT(OUT) :: W(:) 1156 END SUBROUTINE SSYEVD_F95 1157 1158 END INTERFACE 1159 1160 1161 INTERFACE LA_SYEVR 1162 1163 SUBROUTINE SSYEVR_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 1164 & ISUPPZ, ABSTOL, INFO ) 1165 USE LA_PRECISION, ONLY: WP => SP 1166 REAL(WP), INTENT(INOUT) :: A(:,:) 1167 REAL(WP), INTENT(OUT) :: W(:) 1168 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1169 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1170 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1171 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1172 INTEGER, INTENT(OUT), OPTIONAL :: M 1173 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: ISUPPZ(:) 1174 END SUBROUTINE SSYEVR_F95 1175 1176 END INTERFACE 1177 1178 1179 INTERFACE LA_SYEVX 1180 1181 SUBROUTINE SSYEVX_F95( A, W, JOBZ, UPLO, VL, VU, IL, IU, M, & 1182 & IFAIL, ABSTOL, INFO ) 1183 USE LA_PRECISION, ONLY: WP => SP 1184 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1185 INTEGER, INTENT(IN), OPTIONAL :: IL, IU 1186 INTEGER, INTENT(OUT), OPTIONAL :: INFO, M 1187 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1188 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 1189 REAL(WP), INTENT(INOUT) :: A(:,:) 1190 REAL(WP), INTENT(OUT) :: W(:) 1191 END SUBROUTINE SSYEVX_F95 1192 1193 END INTERFACE 1194 1195 1196 INTERFACE LA_SYGST 1197 1198 SUBROUTINE SSYGST_F95( A, B, ITYPE, UPLO, INFO ) 1199 USE LA_PRECISION, ONLY: WP => SP 1200 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1201 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 1202 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1203 REAL(WP), INTENT(INOUT) :: A(:,:) 1204 REAL(WP), INTENT(IN) :: B(:,:) 1205 END SUBROUTINE SSYGST_F95 1206 1207 END INTERFACE 1208 1209 1210 INTERFACE LA_SYGV 1211 1212 SUBROUTINE SSYGV_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 1213 USE LA_PRECISION, ONLY: WP => SP 1214 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1215 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 1216 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1217 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1218 REAL(WP), INTENT(OUT) :: W(:) 1219 END SUBROUTINE SSYGV_F95 1220 1221 END INTERFACE 1222 1223 1224 INTERFACE LA_SYGVX 1225 1226 SUBROUTINE SSYGVX_F95( A, B, W, ITYPE, JOBZ, UPLO, VL, VU, IL, & 1227 & IU, M, IFAIL, ABSTOL, INFO ) 1228 USE LA_PRECISION, ONLY: WP => SP 1229 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1230 REAL(WP), INTENT(OUT) :: W(:) 1231 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1232 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1233 REAL(WP), INTENT(IN), OPTIONAL :: ABSTOL, VL, VU 1234 INTEGER, INTENT(IN), OPTIONAL :: IL, IU, ITYPE 1235 INTEGER, INTENT(OUT), OPTIONAL :: M 1236 INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IFAIL(:) 1237 END SUBROUTINE SSYGVX_F95 1238 1239 END INTERFACE 1240 1241 1242 INTERFACE LA_SYGVD 1243 1244 SUBROUTINE SSYGVD_F95( A, B, W, ITYPE, JOBZ, UPLO, INFO ) 1245 USE LA_PRECISION, ONLY: WP => SP 1246 REAL(WP), INTENT(INOUT) :: A(:,:), B(:,:) 1247 REAL(WP), INTENT(OUT) :: W(:) 1248 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: JOBZ, UPLO 1249 INTEGER, INTENT(IN), OPTIONAL :: ITYPE 1250 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1251 END SUBROUTINE SSYGVD_F95 1252 1253 END INTERFACE 1254 1255 1256 INTERFACE LA_SYTRD 1257 1258 SUBROUTINE SSYTRD_F95( A, TAU, UPLO, INFO ) 1259 USE LA_PRECISION, ONLY: WP => SP 1260 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1261 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1262 REAL(WP), INTENT(INOUT) :: A(:,:) 1263 REAL(WP), INTENT(OUT) :: TAU(:) 1264 END SUBROUTINE SSYTRD_F95 1265 1266 END INTERFACE 1267 1268 1269 INTERFACE LA_ORGTR 1270 1271 SUBROUTINE SORGTR_F95( A, TAU, UPLO, INFO ) 1272 USE LA_PRECISION, ONLY: WP => SP 1273 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO 1274 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1275 REAL(WP), INTENT(IN) :: TAU(:) 1276 REAL(WP), INTENT(INOUT) :: A(:,:) 1277 END SUBROUTINE SORGTR_F95 1278 1279 END INTERFACE 1280 1281 1282 INTERFACE LA_POTRF 1283 1284 SUBROUTINE SPOTRF_F95( A, UPLO, RCOND, NORM, INFO ) 1285 USE LA_PRECISION, ONLY: WP => SP 1286 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM, UPLO 1287 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1288 REAL(WP), INTENT(OUT), OPTIONAL :: RCOND 1289 REAL(WP), INTENT(INOUT) :: A(:,:) 1290 END SUBROUTINE SPOTRF_F95 1291 1292 END INTERFACE 1293 1294 INTERFACE LA_LAGGE 1295 1296 SUBROUTINE SLAGGE_F95( A, KL, KU, D, ISEED, INFO ) 1297 USE LA_PRECISION, ONLY: WP => SP 1298 INTEGER, INTENT(IN), OPTIONAL :: KL, KU 1299 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1300 INTEGER, INTENT(INOUT), OPTIONAL, TARGET :: ISEED(4) 1301 REAL(WP), INTENT(IN), OPTIONAL, TARGET :: D(:) 1302 REAL(WP), INTENT(OUT) :: A(:,:) 1303 END SUBROUTINE SLAGGE_F95 1304 1305 END INTERFACE 1306 1307 INTERFACE LA_LANGE 1308 1309 FUNCTION SLANGE_F95( A, NORM, INFO ) 1310 USE LA_PRECISION, ONLY: WP => SP 1311 REAL(WP) :: SLANGE_F95 1312 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 1313 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1314 REAL(WP), INTENT(IN) :: A(:,:) 1315 END FUNCTION SLANGE_F95 1316 1317 FUNCTION SLANGE1_F95( A, NORM, INFO ) 1318 USE LA_PRECISION, ONLY: WP => SP 1319 REAL(WP) :: SLANGE1_F95 1320 CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: NORM 1321 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1322 REAL(WP), INTENT(IN) :: A(:) 1323 END FUNCTION SLANGE1_F95 1324 1325 END INTERFACE 1326 1327 INTERFACE LA_GESDD 1328 1329 SUBROUTINE SGESDD_F95(A, S, U, VT, WW, JOB, INFO ) 1330 USE LA_PRECISION, ONLY: WP => SP 1331 CHARACTER(LEN=1), OPTIONAL, INTENT(IN) :: JOB 1332 INTEGER, INTENT(OUT), OPTIONAL :: INFO 1333 REAL(WP), INTENT(INOUT) :: A(:,:) 1334 REAL(WP), INTENT(OUT) :: S(:) 1335 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: WW(:) 1336 REAL(WP), INTENT(OUT), OPTIONAL, TARGET :: U(:,:), VT(:,:) 1337 END SUBROUTINE SGESDD_F95 1338 1339 END INTERFACE 1340 1341 END MODULE F95_LAPACK 1342