sespa3
C SESPA3 SOURCE CHAT 09/11/25 21:15:20 6548 ************************************************************************ * * SESPA3 * ----------- * * FONCTION: * --------- * * CALCUL DE LA LISTE DES VALEURS PROPRES IPLVAL ET DE LA MATRICE * DES VECTEURS PROPRES PHI DANS LE CAS D'UN PETIT PROBLEME: * * K1*V=LAMBDA*M1*V * * * * * MODE D'APPEL: * * CALL SESPA3 ( IPK1 , IPM1 , IPHI , IPLVAL ) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPK1 ENTIER (E) POINTEUR DE L'OBJET 'MATRIX' REPRESENTANT * LA MATRICE K1 A DIAGONALISER * (S) MATRICE DIAGONALISEE * * IPM1 ENTIER (E) POINTEUR DE L'OBJET 'MATRIX' REPRESENTANT * LA MATRICE M1 A DIAGONALISER * (S) MATRICE DIAGONALISEE * * IPLVAL ENTIER (S) POINTEUR LISTE DE REELS DES VALEURS * PROPRES * * IPHI ENTIER (S) POINTEUR DE L'OBJET 'MATRIX' DONT LES COLONNES * SONT LES VECTEURS PROPRES DU PROBLEME * * * AUTEURS, DATE DE CREATION: * ------------------------- * * A.M. JOLIVALT, W. PASILLAS 16 / 07 / 94. ( ESOPE ) * ************************************************************ ****************************************************** * * Effectue les transformations de jacobi successives * th: seuil * cf: coupling factor * t1: 1 si test verifié 0 sinon * t2: 1 si test verifié 0 sinon * ******************************************************* C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C C C -INC SMLREEL SEGMENT MATRIX REAL*8 A(N,N) ENDSEGMENT C C POINTEUR IPK1.MATRIX, IPM1.MATRIX, IPHI.MATRIX, IPM3.MATRIX POINTEUR IPK2.MATRIX, IPM2.MATRIX, IPLVAL.MLREEL C SEGACT ,IPK1*mod,ipm1*mod N = IPK1.A(/1) JG = N * SEGINI ,IPHI ,IPK2 ,IPM2 ,IPLVAL C * CALL SJACO1(IPHI,N) do i=1,n iphi.a(i,i)=1.d0 enddo C C segini,ipm3=ipm1 * DO 100 K=1,10000 DO 100 K=1, 15 IND=2*K TH=(1.D1)**(-IND) * C *------------------------------------------------- *- 1er test: cv des valaeurs propres ------------- *------------------------------------------------- C *------------------------------------------------- *--- 2 test: rapport des termes diagonaux -------- *------- et extra diagonaux ---------------- *------------------------------------------------- GOTO 110 ENDIF C ENDIF 100 CONTINUE 110 CONTINUE C * * -- On met les val propres dans lval -- * SEGACT ,IPLVAL*MOD, IPK1, IPM1 DO 300 IB300 = 1, N XK1 = IPK1.A(IB300,IB300) XM1 = IPM1.A(IB300,IB300) XALPHA = XK1 / XM1 300 CONTINUE * SEGDES ,IPLVAL C SEGSUP ,IPK1, IPM1, IPK2 , IPM2, IPM3 C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales