Page 1 Source Listing TRED2 2022-05-02 15:46 eigen.f 1 SUBROUTINE TRED2 (NM, N, A, D, E, Z) 2 C***BEGIN PROLOGUE TRED2 3 C***PURPOSE Reduce a real symmetric matrix to a symmetric tridiagonal 4 C matrix using and accumulating orthogonal transformations. 5 C***LIBRARY SLATEC (EISPACK) 6 C***CATEGORY D4C1B1 7 C***TYPE DOUBLE PRECISION (TRED2-D) 8 C***KEYWORDS EIGENVALUES, EIGENVECTORS, EISPACK 9 C***AUTHOR Smith, B. T., et al. 10 C***DESCRIPTION 11 C 12 C On Input 13 C 14 C NM must be set to the row dimension of the two-dimensional 15 C array parameters, A and Z, as declared in the calling 16 C program dimension statement. NM is an INTEGER variable. 17 C 18 C N is the order of the matrix A. N is an INTEGER variable. 19 C N must be less than or equal to NM. 20 C 21 C A contains the real symmetric input matrix. Only the lower 22 C triangle of the matrix need be supplied. A is a two- 23 C dimensional REAL array, dimensioned A(NM,N). 24 C 25 C On Output 26 C 27 C D contains the diagonal elements of the symmetric tridiagonal 28 C matrix. D is a one-dimensional REAL array, dimensioned D(N). 29 C 30 C E contains the subdiagonal elements of the symmetric 31 C tridiagonal matrix in its last N-1 positions. E(1) is set 32 C to zero. E is a one-dimensional REAL array, dimensioned 33 C E(N). 34 C 35 C Z contains the orthogonal transformation matrix produced in 36 C the reduction. Z is a two-dimensional REAL array, 37 C dimensioned Z(NM,N). 38 C 39 C A and Z may coincide. If distinct, A is unaltered. 40 C 41 C Questions and comments should be directed to B. S. Garbow, 42 C APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY 43 C ------------------------------------------------------------------ 44 C 45 C***REFERENCES B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, 46 C Y. Ikebe, V. C. Klema and C. B. Moler, Matrix Eigen- 47 C system Routines - EISPACK Guide, Springer-Verlag, 48 C 1976. 49 C***ROUTINES CALLED (NONE) 50 C***REVISION HISTORY (YYMMDD) 51 cC 760101 DATE WRITTEN 52 C 890831 Modified array declarations. (WRB) 53 C 890831 REVISION DATE from Version 3.2 54 C 891214 Prologue converted to Version 4.0 format. (BAB) 55 C 920501 Reformatted the REFERENCES section. (WRB) 56 C 971023 Converted to double precision. (REK) 57 C***END PROLOGUE TRED2 Page 2 Source Listing TRED2 2022-05-02 15:46 eigen.f 58 C 59 INTEGER I, 60 + J, 61 + K, 62 + L, 63 + N, 64 + II, 65 + NM, 66 + JP1 67 C 68 C REAL A(NM,*),D(*),E(*),Z(NM,*) 69 C REAL F,G,H,HH,SCALE 70 DOUBLE PRECISION A(NM,N), 71 + D(N), 72 + E(N), 73 + Z(NM,N) 74 DOUBLE PRECISION F, 75 + G, 76 + H, 77 + HH, 78 + SCALE 79 C 80 C***FIRST EXECUTABLE STATEMENT TRED2 81 DO 100 I = 1, N 82 C 83 DO 100 J = 1, I 84 Z(I,J) = A(I,J) 85 100 CONTINUE 86 C 87 IF (N .EQ. 1) GO TO 320 88 C .......... FOR I=N STEP -1 UNTIL 2 DO -- .......... 89 DO 300 II = 2, N 90 I = N + 2 - II 91 L = I - 1 92 H = 0.0D0 93 SCALE = 0.0D0 94 IF (L .LT. 2) GO TO 130 95 C .......... SCALE ROW (ALGOL TOL THEN NOT NEEDED) .......... 96 DO 120 K = 1, L 97 120 SCALE = SCALE + ABS(Z(I,K)) 98 C 99 IF (SCALE .NE. 0.0D0) GO TO 140 100 130 E(I) = Z(I,L) 101 GO TO 290 102 C 103 140 DO 150 K = 1, L 104 Z(I,K) = Z(I,K) / SCALE 105 H = H + Z(I,K) * Z(I,K) 106 150 CONTINUE 107 C 108 F = Z(I,L) 109 G = -SIGN(SQRT(H),F) 110 E(I) = SCALE * G 111 H = H - F * G 112 Z(I,L) = F - G 113 F = 0.0D0 114 C Page 3 Source Listing TRED2 2022-05-02 15:46 eigen.f 115 DO 240 J = 1, L 116 117 Z(J,I) = Z(I,J) / H 118 G = 0.0D0 119 C .......... FORM ELEMENT OF A*U .......... 120 DO 180 K = 1, J 121 180 G = G + Z(J,K) * Z(I,K) 122 C 123 JP1 = J + 1 124 IF (L .LT. JP1) GO TO 220 125 C 126 DO 200 K = JP1, L 127 200 G = G + Z(K,J) * Z(I,K) 128 C .......... FORM ELEMENT OF P .......... 129 220 E(J) = G / H 130 F = F + E(J) * Z(I,J) 131 240 CONTINUE 132 C 133 HH = F / (H + H) 134 C .......... FORM REDUCED A .......... 135 DO 260 J = 1, L 136 F = Z(I,J) 137 G = E(J) - HH * F 138 E(J) = G 139 C 140 DO 260 K = 1, J 141 Z(J,K) = Z(J,K) - F * E(K) - G * Z(I,K) 142 260 CONTINUE 143 C 144 290 D(I) = H 145 300 CONTINUE 146 C 147 320 D(1) = 0.0D0 148 E(1) = 0.0D0 149 C .......... ACCUMULATION OF TRANSFORMATION MATRICES .......... 150 DO 500 I = 1, N 151 L = I - 1 152 IF (D(I) .EQ. 0.0D0) GO TO 380 153 C 154 DO 360 J = 1, L 155 G = 0.0D0 156 C 157 DO 340 K = 1, L 158 340 G = G + Z(I,K) * Z(K,J) 159 C 160 DO 360 K = 1, L 161 Z(K,J) = Z(K,J) - G * Z(K,I) 162 360 CONTINUE 163 C 164 380 D(I) = Z(I,I) 165 Z(I,I) = 1.0D0 166 IF (L .LT. 1) GO TO 500 167 C 168 DO 400 J = 1, L 169 Z(I,J) = 0.0D0 170 Z(J,I) = 0.0D0 171 400 CONTINUE Page 4 Source Listing TRED2 2022-05-02 15:46 eigen.f 172 C 173 500 CONTINUE 174 C 175 RETURN 176 END ENTRY POINTS Name tred2_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 100 Label 85 81,83 120 Label 97 96 130 Label 100 94 140 Label 103 99 150 Label 106 103 180 Label 121 120 200 Label 127 126 220 Label 129 124 240 Label 131 115 260 Label 142 135,140 290 Label 144 101 300 Label 145 89 320 Label 147 87 340 Label 158 157 360 Label 162 154,160 380 Label 164 152 400 Label 171 168 500 Label 173 150,166 A Dummy 1 R(8) 8 2 0 ARG,INOUT 84 ABS Func 97 scalar 97 D Dummy 1 R(8) 8 1 0 ARG,INOUT 144,147,152,164 E Dummy 1 R(8) 8 1 0 ARG,INOUT 100,110,129,130,137,138,141,148 F Local 74 R(8) 8 scalar 108,109,111,112,113,130,133,136,13 7,141 G Local 75 R(8) 8 scalar 109,110,111,112,118,121,127,129,13 7,138,141,155,158,161 H Local 76 R(8) 8 scalar 92,105,109,111,117,129,133,144 HH Local 77 R(8) 8 scalar 133,137 I Local 59 I(4) 4 scalar 81,83,84,90,91,97,100,104,105,108, 110,112,117,121,127,130,136,141,14 4,150,151,152,158,161,164,165,169, 170 II Local 64 I(4) 4 scalar 89,90 J Local 60 I(4) 4 scalar 83,84,115,117,120,121,123,127,129, 130,135,136,137,138,140,141,154,15 8,161,168,169,170 JP1 Local 66 I(4) 4 scalar 123,124,126 K Local 61 I(4) 4 scalar 96,97,103,104,105,120,121,126,127, 140,141,157,158,160,161 Page 5 Source Listing TRED2 2022-05-02 15:46 Symbol Table eigen.f Name Object Declared Type Bytes Dimen Elements Attributes References L Local 62 I(4) 4 scalar 91,94,96,100,103,108,112,115,124,1 26,135,151,154,157,160,166,168 N Dummy 1 I(4) 4 scalar ARG,INOUT 70,71,72,73,81,87,89,90,150 NM Dummy 1 I(4) 4 scalar ARG,INOUT 70,73 SCALE Local 78 R(8) 8 scalar 93,97,99,104,110 SIGN Func 109 scalar 109 SQRT Func 109 scalar 109 TRED2 Subr 1 Z Dummy 1 R(8) 8 2 0 ARG,INOUT 84,97,100,104,105,108,112,117,121, 127,130,136,141,158,161,164,165,16 9,170 Page 6 Source Listing TRED2 2022-05-02 15:46 eigen.f 177 178 179 180 181 182 SUBROUTINE TQL2 (NM, N, D, E, Z, IERR) 183 C***BEGIN PROLOGUE TQL2 184 C***PURPOSE Compute the eigenvalues and eigenvectors of symmetric 185 C tridiagonal matrix. 186 C***LIBRARY SLATEC (EISPACK) 187 C***CATEGORY D4A5, D4C2A 188 C***TYPE DOUBLE PRECISION (TQL2-D) 189 C***KEYWORDS EIGENVALUES, EIGENVECTORS, EISPACK 190 C***AUTHOR Smith, B. T., et al. 191 C***DESCRIPTION 192 C 193 C This subroutine is a translation of the ALGOL procedure TQL2, 194 C NUM. MATH. 11, 293-306(1968) by Bowdler, Martin, Reinsch, and 195 C Wilkinson. 196 C HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 227-240(1971). 197 C 198 C This subroutine finds the eigenvalues and eigenvectors 199 C of a SYMMETRIC TRIDIAGONAL matrix by the QL method. 200 C The eigenvectors of a FULL SYMMETRIC matrix can also 201 C be found if TRED2 has been used to reduce this 202 C full matrix to tridiagonal form. 203 C 204 C On Input 205 C 206 C 207 C NM must be set to the row dimension of the two-dimensional 208 C array parameter, Z, as declared in the calling program 209 C dimension statement. NM is an INTEGER variable. 210 C 211 C N is the order of the matrix. N is an INTEGER variable. 212 C N must be less than or equal to NM. 213 C 214 C D contains the diagonal elements of the symmetric tridiagonal 215 C matrix. D is a one-dimensional REAL array, dimensioned D(N). 216 C 217 C E contains the subdiagonal elements of the symmetric 218 C tridiagonal matrix in its last N-1 positions. E(1) is 219 C arbitrary. E is a one-dimensional REAL array, dimensioned 220 C E(N). 221 C 222 C Z contains the transformation matrix produced in the 223 C reduction by TRED2, if performed. If the eigenvectors 224 C of the tridiagonal matrix are desired, Z must contain 225 C the identity matrix. Z is a two-dimensional REAL array, 226 C dimensioned Z(NM,N). 227 C 228 C On Output 229 C 230 C D contains the eigenvalues in ascending order. If an 231 C error exit is made, the eigenvalues are correct but 232 C unordered for indices 1, 2, ..., IERR-1. 233 C Page 7 Source Listing TQL2 2022-05-02 15:46 eigen.f 234 C E has been destroyed. 235 C 236 C Z contains orthonormal eigenvectors of the symmetric 237 C tridiagonal (or full) matrix. If an error exit is made, 238 C Z contains the eigenvectors associated with the stored 239 C eigenvalues. 240 C 241 C IERR is an INTEGER flag set to 242 C Zero for normal return, 243 C J if the J-th eigenvalue has not been 244 C determined after 30 iterations. 245 C 246 C Calls PYTHAG(A,B) for sqrt(A**2 + B**2). 247 C 248 C Questions and comments should be directed to B. S. Garbow, 249 C APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY 250 C ------------------------------------------------------------------ 251 C 252 C***REFERENCES B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, 253 C Y. Ikebe, V. C. Klema and C. B. Moler, Matrix Eigen- 254 C system Routines - EISPACK Guide, Springer-Verlag, 255 C 1976. 256 C***ROUTINES CALLED PYTHAG 257 C***REVISION HISTORY (YYMMDD) 258 C 760101 DATE WRITTEN 259 C 890831 Modified array declarations. (WRB) 260 C 890831 REVISION DATE from Version 3.2 261 C 891214 Prologue converted to Version 4.0 format. (BAB) 262 C 920501 Reformatted the REFERENCES section. (WRB) 263 C 971023 Converted to double precision. (REK) 264 C***END PROLOGUE TQL2 265 C 266 INTEGER I, 267 + J, 268 + K, 269 + L, 270 + M, 271 + N, 272 + II, 273 + L1, 274 + L2, 275 + NM, 276 + MML, 277 + IERR 278 CC REAL D(*),E(*),Z(NM,*) 279 DOUBLE PRECISION D(N), 280 + E(N), 281 + Z(NM,N) 282 DOUBLE PRECISION B, 283 + C, 284 + C2, 285 + C3, 286 + DL1, 287 + EL1, 288 + F, 289 + G, 290 + H, Page 8 Source Listing TQL2 2022-05-02 15:46 eigen.f 291 + P, 292 + R, 293 + S, 294 + S2 295 DOUBLE PRECISION PYTHAG 296 C 297 C***FIRST EXECUTABLE STATEMENT TQL2 298 IERR = 0 299 IF (N .EQ. 1) GO TO 1001 300 C 301 DO 100 I = 2, N 302 100 E(I-1) = E(I) 303 C 304 F = 0.0D0 305 B = 0.0D0 306 E(N) = 0.0D0 307 C 308 DO 240 L = 1, N 309 J = 0 310 H = ABS(D(L)) + ABS(E(L)) 311 IF (B .LT. H) B = H 312 C .......... LOOK FOR SMALL SUB-DIAGONAL ELEMENT .......... 313 DO 110 M = L, N 314 IF (B + ABS(E(M)) .EQ. B) GO TO 120 315 C .......... E(N) IS ALWAYS ZERO, SO THERE IS NO EXIT 316 C THROUGH THE BOTTOM OF THE LOOP .......... 317 110 CONTINUE 318 C 319 120 IF (M .EQ. L) GO TO 220 320 130 IF (J .EQ. 30) GO TO 1000 321 J = J + 1 322 C .......... FORM SHIFT .......... 323 L1 = L + 1 324 L2 = L1 + 1 325 G = D(L) 326 P = (D(L1) - G) / (2.0D0 * E(L)) 327 R = PYTHAG(P,1.0D0) 328 D(L) = E(L) / (P + SIGN(R,P)) 329 D(L1) = E(L) * (P + SIGN(R,P)) 330 DL1 = D(L1) 331 H = G - D(L) 332 IF (L2 .GT. N) GO TO 145 333 C 334 DO 140 I = L2, N 335 140 D(I) = D(I) - H 336 C 337 145 F = F + H 338 C .......... QL TRANSFORMATION .......... 339 P = D(M) 340 C = 1.0D0 341 C2 = C 342 EL1 = E(L1) 343 S = 0.0D0 344 MML = M - L 345 C .......... FOR I=M-1 STEP -1 UNTIL L DO -- .......... 346 DO 200 II = 1, MML 347 C3 = C2 Page 9 Source Listing TQL2 2022-05-02 15:46 eigen.f 348 C2 = C 349 S2 = S 350 I = M - II 351 G = C * E(I) 352 H = C * P 353 IF (ABS(P) .LT. ABS(E(I))) GO TO 150 354 C = E(I) / P 355 R = SQRT(C*C+1.0D0) 356 E(I+1) = S * P * R 357 S = C / R 358 C = 1.0D0 / R 359 GO TO 160 360 150 C = P / E(I) 361 R = SQRT(C*C+1.0D0) 362 E(I+1) = S * E(I) * R 363 S = 1.0D0 / R 364 C = C * S 365 160 P = C * D(I) - S * G 366 D(I+1) = H + S * (C * G + S * D(I)) 367 C .......... FORM VECTOR .......... 368 DO 180 K = 1, N 369 H = Z(K,I+1) 370 Z(K,I+1) = S * Z(K,I) + C * H 371 Z(K,I) = C * Z(K,I) - S * H 372 180 CONTINUE 373 C 374 200 CONTINUE 375 C 376 P = -S * S2 * C3 * EL1 * E(L) / DL1 377 E(L) = S * P 378 D(L) = C * P 379 IF (B + ABS(E(L)) .GT. B) GO TO 130 380 220 D(L) = D(L) + F 381 240 CONTINUE 382 CC .......... ORDER EIGENVALUES AND EIGENVECTORS .......... 383 DO 300 II = 2, N 384 I = II - 1 385 K = I 386 P = D(I) 387 C 388 DO 260 J = II, N 389 IF (D(J) .GE. P) GO TO 260 390 K = J 391 P = D(J) 392 260 CONTINUE 393 C 394 IF (K .EQ. I) GO TO 300 395 D(K) = D(I) 396 D(I) = P 397 C 398 DO 280 J = 1, N 399 P = Z(J,I) 400 Z(J,I) = Z(J,K) 401 Z(J,K) = P 402 280 CONTINUE 403 C 404 300 CONTINUE Page 10 Source Listing TQL2 2022-05-02 15:46 eigen.f 405 C 406 GO TO 1001 407 C .......... SET ERROR -- NO CONVERGENCE TO AN 408 C EIGENVALUE AFTER 30 ITERATIONS .......... 409 1000 IERR = L 410 1001 RETURN 411 END ENTRY POINTS Name tql2_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 100 Label 302 301 1000 Label 409 320 1001 Label 410 299,406 110 Label 317 313 120 Label 319 314 130 Label 320 379 140 Label 335 334 145 Label 337 332 150 Label 360 353 160 Label 365 359 180 Label 372 368 200 Label 374 346 220 Label 380 319 240 Label 381 308 260 Label 392 388,389 280 Label 402 398 300 Label 404 383,394 ABS Func 310 scalar 310,314,353,379 B Local 282 R(8) 8 scalar 305,311,314,379 C Local 283 R(8) 8 scalar 340,341,348,351,352,354,355,357,35 8,360,361,364,365,366,370,371,378 C2 Local 284 R(8) 8 scalar 341,347,348 C3 Local 285 R(8) 8 scalar 347,376 D Dummy 182 R(8) 8 1 0 ARG,INOUT 310,325,326,328,329,330,331,335,33 9,365,366,378,380,386,389,391,395, 396 DL1 Local 286 R(8) 8 scalar 330,376 E Dummy 182 R(8) 8 1 0 ARG,INOUT 302,306,310,314,326,328,329,342,35 1,353,354,356,360,362,376,377,379 EL1 Local 287 R(8) 8 scalar 342,376 F Local 288 R(8) 8 scalar 304,337,380 G Local 289 R(8) 8 scalar 325,326,331,351,365,366 H Local 290 R(8) 8 scalar 310,311,331,335,337,352,366,369,37 0,371 I Local 266 I(4) 4 scalar 301,302,334,335,350,351,353,354,35 6,360,362,365,366,369,370,371,384, 385,386,394,395,396,399,400 Page 11 Source Listing TQL2 2022-05-02 15:46 Symbol Table eigen.f Name Object Declared Type Bytes Dimen Elements Attributes References IERR Dummy 182 I(4) 4 scalar ARG,INOUT 298,409 II Local 272 I(4) 4 scalar 346,350,383,384,388 J Local 267 I(4) 4 scalar 309,320,321,388,389,390,391,398,39 9,400,401 K Local 268 I(4) 4 scalar 368,369,370,371,385,390,394,395,40 0,401 L Local 269 I(4) 4 scalar 308,310,313,319,323,325,326,328,32 9,331,344,376,377,378,379,380,409 L1 Local 273 I(4) 4 scalar 323,324,326,329,330,342 L2 Local 274 I(4) 4 scalar 324,332,334 M Local 270 I(4) 4 scalar 313,314,319,339,344,350 MML Local 276 I(4) 4 scalar 344,346 N Dummy 182 I(4) 4 scalar ARG,INOUT 279,280,281,299,301,306,308,313,33 2,334,368,383,388,398 NM Dummy 182 I(4) 4 scalar ARG,INOUT 281 P Local 291 R(8) 8 scalar 326,327,328,329,339,352,353,354,35 6,360,365,376,377,378,386,389,391, 396,399,401 PYTHAG Func 295 R(8) 8 scalar 327 R Local 292 R(8) 8 scalar 327,328,329,355,356,357,358,361,36 2,363 S Local 293 R(8) 8 scalar 343,349,356,357,362,363,364,365,36 6,370,371,376,377 S2 Local 294 R(8) 8 scalar 349,376 SIGN Func 328 scalar 328,329 SQRT Func 355 scalar 355,361 TQL2 Subr 182 Z Dummy 182 R(8) 8 2 0 ARG,INOUT 369,370,371,399,400,401 Page 12 Source Listing TQL2 2022-05-02 15:46 eigen.f 412 413 414 415 416 417 DOUBLE PRECISION FUNCTION PYTHAG (A, B) 418 C***BEGIN PROLOGUE PYTHAG 419 C***SUBSIDIARY 420 C***PURPOSE Compute the complex square root of a complex number without 421 C destructive overflow or underflow. 422 C***LIBRARY SLATEC 423 C***TYPE SINGLE PRECISION (PYTHAG-S) 424 C***AUTHOR (UNKNOWN) 425 C***DESCRIPTION 426 C 427 C Finds sqrt(A**2+B**2) without overflow or destructive underflow 428 C 429 C***SEE ALSO EISDOC 430 C***ROUTINES CALLED (NONE) 431 C***REVISION HISTORY (YYMMDD) 432 C 811101 DATE WRITTEN 433 C 890531 Changed all specific intrinsics to generic. (WRB) 434 C 891214 Prologue converted to Version 4.0 format. (BAB) 435 C 900402 Added TYPE section. (WRB) 436 C 971023 Converted to double precision. (REK) 437 C***END PROLOGUE PYTHAG 438 DOUBLE PRECISION A, 439 + B 440 C 441 DOUBLE PRECISION P, 442 + Q, 443 + R, 444 + S, 445 + T 446 C***FIRST EXECUTABLE STATEMENT PYTHAG 447 P = MAX (ABS (A), ABS (B)) 448 Q = MIN (ABS (A), ABS (B)) 449 IF (Q .EQ. 0.0D0) GO TO 20 450 10 CONTINUE 451 R = (Q / P)**2 452 T = 4.0D0 + R 453 IF (T .EQ. 4.0D0) GO TO 20 454 S = R / T 455 P = P + 2.0D0*P*S 456 Q = Q * S 457 GO TO 10 458 20 PYTHAG = P 459 RETURN 460 END Page 13 Source Listing PYTHAG 2022-05-02 15:46 Entry Points eigen.f ENTRY POINTS Name pythag_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 10 Label 450 457 20 Label 458 449,453 A Dummy 417 R(8) 8 scalar ARG,INOUT 447,448 ABS Func 447 scalar 447,448 B Dummy 417 R(8) 8 scalar ARG,INOUT 447,448 MAX Func 447 scalar 447 MIN Func 448 scalar 448 P Local 441 R(8) 8 scalar 447,451,455,458 PYTHAG Func 417 R(8) 8 scalar 458 PYTHAG@0 Local 417 R(8) 8 scalar Q Local 442 R(8) 8 scalar 448,449,451,456 R Local 443 R(8) 8 scalar 451,452,454 S Local 444 R(8) 8 scalar 454,455,456 T Local 445 R(8) 8 scalar 452,453,454 Page 14 Source Listing PYTHAG 2022-05-02 15:46 eigen.f 461 462 Page 15 Source Listing PYTHAG 2022-05-02 15:46 Subprograms/Common Blocks eigen.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References PYTHAG Func 417 R(8) 8 scalar 458 TQL2 Subr 182 TRED2 Subr 1 COMPILER OPTIONS BEING USED -align noall -align nonone -align nocommons -align nodcommons -align noqcommons -align nozcommons -align records -align sequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -align norec32byte -align norec64byte -align noarray8byte -align noarray16byte -align noarray32byte -align noarray64byte -align noarray128byte -align noarray256byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume nobuffered_stdout -assume byterecl -assume nocontiguous_assumed_shape -assume nocontiguous_pointer -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_complex_align -assume old_unit_star -assume old_inquire_recl -assume old_ldout_format -assume old_ldout_zero -assume noold_logical_assign -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume noprotect_allocates -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume std_minus0_rounding -assume nostd_mod_proc_name -assume std_value -assume realloc_lhs -assume underscore -assume no2underscores -assume norecursion no -auto -auto_scalar no -bintext -ccdefault default -check noarg_temp_created -check noassume -check nobounds -check nocontiguous -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check noshape -check nostack -check nouninitialized -check noudio_iostat -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1910 -D __INTEL_COMPILER_UPDATE=3 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ Page 16 Source Listing PYTHAG 2022-05-02 15:46 eigen.f -D __amd64 -D __amd64__ -D __INTEL_COMPILER_BUILD_DATE=20200925 -D __INTEL_OFFLOAD -D __MMX__ -D __SSE__ -D __SSE_MATH__ -D __SSE2__ -D __SSE2_MATH__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __POPCNT__ -D __PCLMUL__ -D __AES__ -D __AVX__ -D __F16C__ -D __AVX_I__ -D __RDRND__ -D __FMA__ -D __FP_FAST_FMA -D __FP_FAST_FMAF -D __BMI__ -D __LZCNT__ -D __AVX2__ -D __haswell -D __haswell__ -D __tune_haswell__ -D __core_avx2 -D __core_avx2__ -D __tune_core_avx2__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals -fixed no -fpconstant -fpe3 -fprm nearest -ftz -fp_model precise -fp_model nofast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -fp_modbits nofp_contract -fp_modbits nono_fp_contract -fp_modbits nofenv_access -fp_modbits nono_fenv_access -fp_modbits nocx_limited_range -fp_modbits nono_cx_limited_range -fp_modbits noprec_div -fp_modbits no_prec_div -fp_modbits noprec_sqrt -fp_modbits no_prec_sqrt -fp_modbits ftz -fp_modbits nono_ftz -fp_modbits nointrin_limited_range -fp_modbits nono_intrin_limited_range -fp_modbits notrunc_compares -fp_modbits nono_trunc_compares -fp_modbits noieee_nan_compares -fp_modbits nono_ieee_nan_compares -fp_modbits nohonor_f32_conversion -fp_modbits nono_honor_f32_conversion -fp_modbits nohonor_f64_conversion -fp_modbits nono_honor_f64_conversion -fp_modbits nono_x87_copy -fp_modbits nono_no_x87_copy -fp_modbits noexception_semantics -fp_modbits nono_exception_semantics -fp_modbits noprecise_libm_functions -fp_modbits no_precise_libm_functions -heap_arrays 0 no -threadprivate_compat -g0 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg -init noarrays -init nohuge -init noinfinity -init nominus_huge -init nominus_infinity -init nominus_tiny -init nonan -init nosnan -init notiny -init nozero no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude no -o -offload-build=host -openmp-simd -O3 no -pad_source -real_size 32 no -recursive Page 17 Source Listing PYTHAG 2022-05-02 15:46 eigen.f -reentrancy threaded -vec=simd -show nofullpath -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w nodeclarations -w noexternals -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w noshape -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage no -wrap-margins -includepath : /pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/, /usr/include/,.FOR,./.FOR,/opt/cray/pe/mpich/8.1.9/ofi/intel/19.0/include/.FOR,/pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/intel64/lp64/.FOR, /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/.FOR,/pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/.FOR, /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/.FOR,/pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/.FOR, /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/stdlib/.FOR,/pe/intel/compilers_and_libraries_2020.4.304/linux/tbb/include/.FOR, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/.FOR,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/.FOR, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/.FOR,/usr/lib64/gcc/x86_64-suse-linux/7/include/.FOR, /usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/.FOR,/usr/include/.FOR,/usr/include/.FOR,/usr/include/.FOR -list filename : eigen.lst no -o COMPILER: Intel(R) Fortran 19.1-1655