arpope
C ARPOPE SOURCE PV 22/04/15 17:10:46 11344 *********************************************************************** * * A R P O P E * * FONCTION: * --------- * * CONSTRUCTION DES OPERATEURS DE TRAVAIL POUR ARPACK * * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * * IPRIGI ENTIER (E) POINTEUR DE LA RIGIDITE * * IPMASS ENTIER (E) POINTEUR DE LA MASSE * * IPAMOR ENTIER (E) POINTEUR DE L'AMORTISSEMENT * * QUAD LOGIQUE (E) PROBLEME QUADRATIQUE OU NON * * SIGMA COMPLEXE DP (E) VALEUR DU SHIFT * * IPRTRA ENTIER (S) POINTEUR VERS LE SEGMENT DES OPERATEURS * * * SOUS-PROGRAMMES APPELES: * ------------------------ * * DECALE, TRIANG, LDMT1 * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL BOUDA 17 JUILLET 2015 * * LANGAGE: * -------- * * FORTRAN 77 & 90 * ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMRIGID -INC TARWORK -INC CCREEL INTEGER IPRIGI INTEGER IPMASS INTEGER IPAMOR LOGICAL QUAD INTEGER IPRTRA INTEGER IPBUFF INTEGER IPINT INTEGER IPCHO INTEGER NBR, NRG * Liste des operateurs construits * * K MATRICE DE RIGIDITE * M MATRICE DE MASSE * C MATRICE D'AMORTISSEMENT * RIGI(1)=K * RIGI(2)=M OU KSIGMA * RIGI(3)=C * RIGI(4)=K-RE(SIGMA)*M * RIGI(5)=C+RE(SIGMA)*M * RIGI(6)=K+RE(SIGMA)*(C+RE(SIGMA)*M) * SYME indique si l'operateur construit est symetrique *ou non xspetl = xspeti NB=6 SEGINI MRITRA ENDDO IF (.NOT. QUAD) THEN ELSE ENDIF *Triangularisation des operateurs de travail si necessaire SEGACT MRIGID IPCHO=ICHOLE NRG = IRIGEL(/1) NBR = IRIGEL(/2) SYME(i)=0 IF (NRG .GE. 7) THEN DO j=1,NBR IANTI=IRIGEL(7,j) IF (IANTI .GT. 0) THEN SYME(i)=1 ENDIF ENDDO ENDIF SEGDES MRIGID IF (IPCHO .EQ. 0) THEN IF (SYME(i) .EQ. 0) THEN IF (IERR .NE. 0) RETURN ELSE IF (IERR .NE. 0) RETURN ENDIF ENDIF ENDIF ENDDO IPRTRA=MRITRA SEGDES MRITRA END
© Cast3M 2003 - Tous droits réservés.
Mentions légales