sespa1
C SESPA1 SOURCE PV 22/04/15 13:20:12 11344 C SESPA1 SOURCE WP 23/08/94 C SUBROUTINE SESPA1 ( IPLSO, IPRIGI, IPMASS ) ************************************************************************ * * SESPA1 * ----------- * * FONCTION: * --------- * * FAIRE UN PAS D'ITERATION DE SOUS-ESPACE: K X(i+1) = M X(i) * SUIVI D'UNE ORTHOGONALISATION: X(i+1) = GRAAMO X(i+1) * * MODE D'APPEL: * * CALL SESPA1 ( IPLSO, IPRIGI, IPLSO1 ) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPLSNO ENTIER (E) POINTEUR DE L'OBJET 'LISTCHPO' CONTENANT * LA SUITE DE 'CHPOINT' X(i) * * IPRIGI ENTIER (E) POINTEUR SUR L'OBJET 'RIGIDITE' K * IPMASS ENTIER (E) POINTEUR SUR L'OBJET 'RIGIDITE' M * * AUTEUR, DATE DE CREATION: * ------------------------- * * A.M. JOLIVALT, W. PASILLAS 12 / 07 / 94. ( ESOPE ) * ************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLCHPO -INC CCHAMP -INC CCREEL SEGMENT IPLIST(0) ****** * -- ARGUMENTS -- *** POINTEUR IPLSO.MLCHPO INTEGER IPRIGI, IPMASS ****** * -- VARIABLES LOCALES -- *** * SEGMENT IPLIST(0) INTEGER IPCHPO, IPCHP1, IPCHP2 INTEGER IB100, IB200, IB300, ILDIM CHARACTER*(LOCOMP) MOTCLE xspetl = xspeti SEGINI ,IPLIST SEGDES ,IPLIST ****** * -- ON VA FAIRE POINTER LES ELEMENTS DE IPLIST VERS LES 'CHPOINTS' * CONTENUS DANS IPLSO. LES MODIFICATIONS EFFECTUEES SUR LES 'CHPO' * DE IPLIST SERONT DONC EFFECTUEES AUSSI SUR CEUX DE IPLSO. -- *** SEGACT ,IPLSO ILDIM = IPLSO.ICHPOI(/1) SEGDES ,IPLSO SEGACT IPLIST*MOD SEGACT IPLSO DO 100 IB100 = 1, ILDIM IPLIST(**) = IPLSO.ICHPOI( IB100 ) 100 CONTINUE SEGDES ,IPLIST, IPLSO ****** * -- ON MULTIPLIE LES 'CHPOINT' DE IPLIST PAR IPMASS. * ET ON ANNULLE LES TERMES EN PI ( POUR LES ELEMENTS LIQUIDES ) -- *** SEGACT IPLIST*MOD DO 200 IB200 = 1, ILDIM IPCHPO = IPLIST( IB200 ) IF ( IERR .NE. 0 ) RETURN IF ( IERR .NE. 0 ) RETURN IF ( IERR .NE. 0 ) RETURN IF ( IERR .NE. 0 ) RETURN IPLIST( IB200 ) = IPCHP2 200 CONTINUE SEGDES ,IPLIST ****** * -- ON RESOUD LE SYSTEME K X(i+1) = M X(i) -- *** CALL RESOU1 ( IPRIGI, IPLIST, 0, 1 ,xspetl,0,0) IF ( IERR .NE. 0 ) THEN WRITE ( IOIMP, 1000 ) 1000 FORMAT(/,' La matrice d''iteration (K-W2M) est singulière 1 (a la precision',/,' machine près). Essayez de decaller la fréque 3nce fournie a VIBR',/) RETURN ENDIF ****** * -- ON REMET DANS LSO, EN NORMANT AVEC LA NORME DU MAX. -- *** IF ( IERR .NE. 0 ) RETURN SEGACT ,IPLIST SEGACT IPLSO*MOD DO 300 IB300 = 1, ILDIM IPCHPO = IPLIST( IB300 ) IF ( IERR .NE. 0 ) RETURN IF ( IERR .NE. 0 ) RETURN IPLSO.ICHPOI( IB300 ) = IPCHP1 300 CONTINUE SEGDES ,IPLIST, IPLSO SEGSUP ,IPLIST RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales