Fix typos in comment strings of [csdzd]chkdmd.f90
- intial/inital -> initial (K_traj loop and K_TRAJ==2 branch) - eigencalues -> eigenvalues (GEDMD and GEDMDQ comment blocks) - Rezidual -> Residual (WRITE output strings) - rayleigh -> Rayleigh (proper noun, z/s/dchkdmd.f90) - aigenvectors -> eigenvectors (s/dchkdmd.f90) - localy -> locally (s/dchkdmd.f90 MKL note) - whith -> with (s/dchkdmd.f90 MKL note) - worksapce -> workspace (s/dchkdmd.f90 MKL note) - ZGEDMDQ -> CGEDMDQ in comment blocks (cchkdmd.f90) - ZGEDMD and ZGEDMDQ -> CGEDMD and CGEDMDQ in WRITE string (cchkdmd.f90)
This commit is contained in:
+13
-13
@@ -194,7 +194,7 @@
|
||||
!.............
|
||||
|
||||
DO K_traj = 1, 2
|
||||
! Number of intial conditions in the simulation/trajectories (1 or 2)
|
||||
! Number of initial conditions in the simulation/trajectories (1 or 2)
|
||||
|
||||
COND = 1.0D4
|
||||
CMAX = (1.0D1,1.0D1)
|
||||
@@ -243,7 +243,7 @@
|
||||
|
||||
IF ( K_traj == 2 ) THEN
|
||||
! generate data as two trajectories
|
||||
! with two inital conditions
|
||||
! with two initial conditions
|
||||
CALL CLARNV(2, ISEED, M, F(1,1) )
|
||||
DO i = 1, N/2
|
||||
CALL CGEMV( 'N', M, M, CONE, A, LDA, F(1,i), 1, &
|
||||
@@ -452,7 +452,7 @@
|
||||
CALL CGEMM( 'N', 'N', M, K, M, CONE, A, LDA, Z, LDZ, CZERO, Y1, LDY )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in CGEDMD,)
|
||||
! pairs of eigenvalues. (See the description of Z in CGEDMD,)
|
||||
|
||||
DO i=1, K
|
||||
! have a real eigenvalue with real eigenvector
|
||||
@@ -525,7 +525,7 @@
|
||||
END IF
|
||||
SINGVQX(1:N) =WORK(1:N)
|
||||
|
||||
!..... ZGEDMDQ check point
|
||||
!..... CGEDMDQ check point
|
||||
|
||||
TMP = ZERO
|
||||
DO i = 1, MIN(K, KQ)
|
||||
@@ -556,16 +556,16 @@
|
||||
NFAIL_F_QR = NFAIL_F_QR + 1
|
||||
END IF
|
||||
END IF
|
||||
!..... ZGEDMDQ checkpoint
|
||||
!..... ZGEDMDQ checkpoint
|
||||
!..... CGEDMDQ checkpoint
|
||||
!..... CGEDMDQ checkpoint
|
||||
IF ( LSAME(RESIDS, 'R') ) THEN
|
||||
! Compare the residuals returned by ZGEDMDQ with the
|
||||
! Compare the residuals returned by CGEDMDQ with the
|
||||
! explicitly computed residuals using the matrix A.
|
||||
! Compute explicitly Y1 = A*Z
|
||||
CALL CGEMM( 'N', 'N', M, KQ, M, CONE, A, LDA, Z, LDZ, CZERO, Y1, LDY )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in ZGEDMDQ)
|
||||
! pairs of eigenvalues. (See the description of Z in CGEDMDQ)
|
||||
DO i = 1, KQ
|
||||
! have a real eigenvalue with real eigenvector
|
||||
CALL CAXPY( M, -CEIGS(i), Z(1,i), 1, Y1(1,i), 1 )
|
||||
@@ -659,9 +659,9 @@
|
||||
|
||||
|
||||
IF ( NFAIL_REZ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAIL_TOTAL = NFAIL_TOTAL + NFAIL_REZ
|
||||
@@ -683,7 +683,7 @@
|
||||
WRITE(*,*) '>>>> CGEDMD and CGEDMDQ computed singular &
|
||||
&values test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'ZGEDMD and ZGEDMDQ discrepancies in &
|
||||
WRITE(*,*) 'CGEDMD and CGEDMDQ discrepancies in &
|
||||
&the singular values unacceptable ', &
|
||||
NFAIL_SVDIFF, ' times. Test FAILED.'
|
||||
WRITE(*,*) 'The maximal discrepancy in the singular values (relative to the norm) was ', SVDIFF
|
||||
@@ -700,9 +700,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZQ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZQ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAILQ_TOTAL = NFAILQ_TOTAL + NFAIL_REZQ
|
||||
|
||||
+13
-13
@@ -42,9 +42,9 @@
|
||||
! work space query. (At least in our Windows 10 MSVS 2019.)
|
||||
! The problem can be mitigated by downloading the source
|
||||
! code of xGESVDQ from the LAPACK repository and use it
|
||||
! localy instead of the one in the MKL. This seems to
|
||||
! locally instead of the one in the MKL. This seems to
|
||||
! indicate that the problem is indeed in the MKL.
|
||||
! This problem did not appear whith Intel MKL 2022.2.0.
|
||||
! This problem did not appear with Intel MKL 2022.2.0.
|
||||
!
|
||||
! NOTE:
|
||||
! xGESDD seems to have a problem with workspace. In some
|
||||
@@ -53,7 +53,7 @@
|
||||
! code. As a precaution, all optimal workspaces are
|
||||
! set as MAX(minimal, optimal).
|
||||
! Latest implementations of complex xGESDD have different
|
||||
! length of the real worksapce. We use max value over
|
||||
! length of the real workspace. We use max value over
|
||||
! two versions.
|
||||
!............................................................
|
||||
!............................................................
|
||||
@@ -224,7 +224,7 @@
|
||||
!.............
|
||||
|
||||
DO K_TRAJ = 1, 2
|
||||
! Number of intial conditions in the simulation/trajectories (1 or 2)
|
||||
! Number of initial conditions in the simulation/trajectories (1 or 2)
|
||||
|
||||
COND = 1.0D8
|
||||
DMAX = 1.0D2
|
||||
@@ -269,7 +269,7 @@
|
||||
ANORM = DLANGE( 'F', N, N, A, M, WDUMMY )
|
||||
|
||||
IF ( K_TRAJ == 2 ) THEN
|
||||
! generate data with two inital conditions
|
||||
! generate data with two initial conditions
|
||||
CALL DLARNV(2, ISEED, M, F1(1,1) )
|
||||
F1(1:M,1) = 1.0E-10*F1(1:M,1)
|
||||
DO i = 1, N/2
|
||||
@@ -382,9 +382,9 @@
|
||||
!...... DGEDMD check point
|
||||
IF ( LSAME(JOBZ,'V') ) THEN
|
||||
! Check that Z = X*W, on return from DGEDMD
|
||||
! This checks that the returned aigenvectors in Z are
|
||||
! This checks that the returned eigenvectors in Z are
|
||||
! the product of the SVD'POD basis returned in X
|
||||
! and the eigenvectors of the rayleigh quotient
|
||||
! and the eigenvectors of the Rayleigh quotient
|
||||
! returned in W
|
||||
CALL DGEMM( 'N', 'N', M, K, K, ONE, X, LDX, W, LDW, &
|
||||
ZERO, Z1, LDZ )
|
||||
@@ -482,7 +482,7 @@
|
||||
CALL DGEMM( 'N', 'N', M, K, M, ONE, A, LDA, Z, LDZ, ZERO, Y1, M )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in DGEDMD,)
|
||||
! pairs of eigenvalues. (See the description of Z in DGEDMD,)
|
||||
i = 1
|
||||
DO WHILE ( i <= K )
|
||||
IF ( IEIG(i) == ZERO ) THEN
|
||||
@@ -615,7 +615,7 @@
|
||||
CALL DGEMM( 'N', 'N', M, KQ, M, ONE, A, M, Z, M, ZERO, Y1, M )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in DGEDMDQ)
|
||||
! pairs of eigenvalues. (See the description of Z in DGEDMDQ)
|
||||
i = 1
|
||||
DO WHILE ( i <= KQ )
|
||||
IF ( IEIGQ(i) == ZERO ) THEN
|
||||
@@ -746,9 +746,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAIL_TOTAL = NFAIL_TOTAL + NFAIL_REZ
|
||||
@@ -790,9 +790,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZQ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZQ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAILQ_TOTAL = NFAILQ_TOTAL + NFAIL_REZQ
|
||||
|
||||
+13
-13
@@ -42,9 +42,9 @@
|
||||
! work space query. (At least in our Windows 10 MSVS 2019.)
|
||||
! The problem can be mitigated by downloading the source
|
||||
! code of xGESVDQ from the LAPACK repository and use it
|
||||
! localy instead of the one in the MKL. This seems to
|
||||
! locally instead of the one in the MKL. This seems to
|
||||
! indicate that the problem is indeed in the MKL.
|
||||
! This problem did not appear whith Intel MKL 2022.2.0.
|
||||
! This problem did not appear with Intel MKL 2022.2.0.
|
||||
!
|
||||
! NOTE:
|
||||
! xGESDD seems to have a problem with workspace. In some
|
||||
@@ -53,7 +53,7 @@
|
||||
! code. As a precaution, all optimal workspaces are
|
||||
! set as MAX(minimal, optimal).
|
||||
! Latest implementations of complex xGESDD have different
|
||||
! length of the real worksapce. We use max value over
|
||||
! length of the real workspace. We use max value over
|
||||
! two versions.
|
||||
!............................................................
|
||||
!............................................................
|
||||
@@ -224,7 +224,7 @@
|
||||
!.............
|
||||
|
||||
DO K_TRAJ = 1, 2
|
||||
! Number of intial conditions in the simulation/trajectories (1 or 2)
|
||||
! Number of initial conditions in the simulation/trajectories (1 or 2)
|
||||
|
||||
COND = 1.0D8
|
||||
DMAX = 1.0D2
|
||||
@@ -269,7 +269,7 @@
|
||||
ANORM = SLANGE( 'F', N, N, A, M, WDUMMY )
|
||||
|
||||
IF ( K_TRAJ == 2 ) THEN
|
||||
! generate data with two inital conditions
|
||||
! generate data with two initial conditions
|
||||
CALL SLARNV(2, ISEED, M, F1(1,1) )
|
||||
F1(1:M,1) = 1.0E-10*F1(1:M,1)
|
||||
DO i = 1, N/2
|
||||
@@ -383,9 +383,9 @@
|
||||
!...... SGEDMD check point
|
||||
IF ( LSAME(JOBZ,'V') ) THEN
|
||||
! Check that Z = X*W, on return from SGEDMD
|
||||
! This checks that the returned aigenvectors in Z are
|
||||
! This checks that the returned eigenvectors in Z are
|
||||
! the product of the SVD'POD basis returned in X
|
||||
! and the eigenvectors of the rayleigh quotient
|
||||
! and the eigenvectors of the Rayleigh quotient
|
||||
! returned in W
|
||||
CALL SGEMM( 'N', 'N', M, K, K, ONE, X, LDX, W, LDW, &
|
||||
ZERO, Z1, LDZ )
|
||||
@@ -473,7 +473,7 @@
|
||||
CALL SGEMM( 'N', 'N', M, K, M, ONE, A, LDA, Z, LDZ, ZERO, Y1, M )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in SGEDMD,)
|
||||
! pairs of eigenvalues. (See the description of Z in SGEDMD,)
|
||||
i = 1
|
||||
DO WHILE ( i <= K )
|
||||
IF ( IEIG(i) == ZERO ) THEN
|
||||
@@ -596,7 +596,7 @@
|
||||
CALL SGEMM( 'N', 'N', M, KQ, M, ONE, A, M, Z, M, ZERO, Y1, M )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in SGEDMDQ)
|
||||
! pairs of eigenvalues. (See the description of Z in SGEDMDQ)
|
||||
i = 1
|
||||
DO WHILE ( i <= KQ )
|
||||
IF ( IEIGQ(i) == ZERO ) THEN
|
||||
@@ -725,9 +725,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAIL_TOTAL = NFAIL_TOTAL + NFAIL_REZ
|
||||
@@ -769,9 +769,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZQ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZQ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAILQ_TOTAL = NFAILQ_TOTAL + NFAIL_REZQ
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
!.............
|
||||
|
||||
DO K_TRAJ = 1, 2
|
||||
! Number of intial conditions in the simulation/trajectories (1 or 2)
|
||||
! Number of initial conditions in the simulation/trajectories (1 or 2)
|
||||
|
||||
COND = 1.0D4
|
||||
ZMAX = (1.0D1,1.0D1)
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
IF ( K_TRAJ == 2 ) THEN
|
||||
! generate data as two trajectories
|
||||
! with two inital conditions
|
||||
! with two initial conditions
|
||||
CALL ZLARNV(2, ISEED, M, ZF(1,1) )
|
||||
DO i = 1, N/2
|
||||
CALL ZGEMV( 'N', M, M, ZONE, ZA, LDA, ZF(1,i), 1, &
|
||||
@@ -385,7 +385,7 @@
|
||||
! Check that Z = X*W, on return from ZGEDMD
|
||||
! This checks that the returned eigenvectors in Z are
|
||||
! the product of the SVD'POD basis returned in X
|
||||
! and the eigenvectors of the rayleigh quotient
|
||||
! and the eigenvectors of the Rayleigh quotient
|
||||
! returned in W
|
||||
CALL ZGEMM( 'N', 'N', M, K, K, ZONE, ZX, LDX, ZW, LDW, &
|
||||
ZZERO, ZZ1, LDZ )
|
||||
@@ -462,7 +462,7 @@
|
||||
CALL ZGEMM( 'N', 'N', M, K, M, ZONE, ZA, LDA, ZZ, LDZ, ZZERO, ZY1, LDY )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in ZGEDMD,)
|
||||
! pairs of eigenvalues. (See the description of Z in ZGEDMD,)
|
||||
|
||||
DO i=1, K
|
||||
! have a real eigenvalue with real eigenvector
|
||||
@@ -582,7 +582,7 @@
|
||||
CALL ZGEMM( 'N', 'N', M, KQ, M, ZONE, ZA, LDA, ZZ, LDZ, ZZERO, ZY1, LDY )
|
||||
! ... and then A*Z(:,i) - LAMBDA(i)*Z(:,i), using the real forms
|
||||
! of the invariant subspaces that correspond to complex conjugate
|
||||
! pairs of eigencalues. (See the description of Z in ZGEDMDQ)
|
||||
! pairs of eigenvalues. (See the description of Z in ZGEDMDQ)
|
||||
|
||||
DO i=1, KQ
|
||||
! have a real eigenvalue with real eigenvector
|
||||
@@ -678,9 +678,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAIL_TOTAL = NFAIL_TOTAL + NFAIL_REZ
|
||||
@@ -722,9 +722,9 @@
|
||||
END IF
|
||||
|
||||
IF ( NFAIL_REZQ == 0 ) THEN
|
||||
WRITE(*,*) '>>>> Rezidual computation test PASSED.'
|
||||
WRITE(*,*) '>>>> Residual computation test PASSED.'
|
||||
ELSE
|
||||
WRITE(*,*) 'Rezidual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Residual computation test FAILED ', NFAIL_REZQ, 'time(s)'
|
||||
WRITE(*,*) 'Max residual computing test adjusted error measure was ', TMP_REZQ
|
||||
WRITE(*,*) 'It should be up to O(M*N) times EPS, EPS = ', EPS
|
||||
NFAILQ_TOTAL = NFAILQ_TOTAL + NFAIL_REZQ
|
||||
|
||||
Reference in New Issue
Block a user