Numérotation des lignes :

itinv
C ITINV     SOURCE    PV        17/12/19    21:15:06     9673                 SUBROUTINE ITINV (IPA,IPB,IPX,PROPRE,CONVRG,ITERMX,NUMACC,PRECI1     &                 ,PRECI2,IPMX)      IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8 (A-H,O-Z)**************************************************************************                              I T I N V*                              ---------** FONCTION:* ---------**     RESOUDRE, PAR ITERATIONS INVERSES, UN SYSTEME D'EQUATIONS:*        |A|.(X) = V.|B|.(X)*     |A| ET |B| ETANT 2 'RIGIDITE',*     (X) UN 'CHPOINT' A DETERMINER ET*     V  UN 'FLOTTANT' EGALEMENT A DETERMINER.**     ("ITINV" VAUT POUR IT-ERATIONS INV-ERSES)** MODE D'APPEL:* -------------**     CALL ITINV (IPA,IPB,IPX,PROPRE,CONVRG,ITERMX,NUMACC,PRECI1,PRECI2)** PARAMETRES:   (E)=ENTREE   (S)=SORTIE* -----------**     IPA     ENTIER    (E)  POINTEUR DE L'OBJET 'RIGIDITE' |A|.*     IPB     ENTIER    (E)  POINTEUR DE L'OBJET 'RIGIDITE' |B|.*     IPX     ENTIER    (E)  POINTEUR DE L'OBJET 'CHPOINT' DE DEPART.*                       (S)  POINTEUR DE L'OBJET 'CHPOINT' SOLUTION.*     PROPRE  REEL DP   (S)  TABLEAU CONTENANT DES CARACTERISTIQUES DU*                            MODE PROPRE CALCULE. ACTUELLEMENT,*                            PROPRE(1) = "VALPP" ,*                            PROPRE(2) = (X)T.|B|.(X) , (X) 'CHPOINT'*                            SOLUTION,*                            PROPRE(3)ET(4) ET(5) DEPL.GEN. SELON X,Y,Z*     CONVRG  LOGIQUE   (S)  INDIQUE PAR .TRUE. OU .FALSE. SI LA*                            CONVERGENCE A EU LIEU OU NON.*     ITERMX  ENTIER    (E)  NOMBRE MAXIMUM D'ITERATIONS PERMIS.*     NUMACC  ENTIER    (E)  L'ACCELERATION DE CONVERGENCE A LIEU 1*                            FOIS TOUTES LES "NUMACC" ITERATIONS.*     PRECI1  REEL SP   (E)  CONSTANTE DONNANT LA PRECISION DE*                            CONVERGENCE DES VALEURS DU 'CHPOINT' "X".*     PRECI2  REEL SP   (E)  CONSTANTE DONNANT LA PRECISION DE*                            CONVERGENCE DU SCALAIRE "XT.B.X"** LEXIQUE: (ORDRE ALPHABETIQUE)* --------**     DIFREL  REEL SP   VOIR LE S.P. "ITINV1".*     IACCEL  ENTIER    NOMBRE D'ITERATIONS CONSECUTIVES EFFECTUEES*                       SANS ACCELERATION DE CONVERGENCE.*     IPX0    ENTIER    VOIR LE S.P. "ITINV1".*     IPX1    ENTIER    VOIR LE S.P. "ITINV1".*     IPX2    ENTIER    VOIR LE S.P. "ITINV1".*     NBITER  ENTIER    NOMBRE D'ITERATIONS EFFECTUEES.*     NUMXBX  ENTIER    NUMERO DE LA DERNIERE ITERATION OU L'ON A*                       CALCULE "XT.B.X" POUR 2 'CHPOINT' ITERES*                       CONSECUTIFS.*     VALPP   REEL DP   VALEUR PROPRE ASSOCIEE AU 'CHPOINT' SOLUTION.** MODE DE FONCTIONNEMENT:* -----------------------**     METHODE DES ITERATIONS INVERSES:**     LA SUITE "(X)I" TELLE QUE:*        |A| . (X)I+1 = |B| . (X)I*     TEND VERS LA (OU UNE DES) SOLUTION(S) DE:*        |A| . (X) = V . |B| . (X)*     CORRESPONDANT AU PLUS PETIT  V  SOLUTION (EN VALEUR ABSOLUE) SOUS*     RESERVE QUE LE (X)1 DE DEPART N'EST PAS B-ORTHOGONAL AU (X)*     SOLUTION.** SOUS-PROGRAMMES APPELES:* ------------------------**     DTCHPO, ITINV1, XTMX, YTX1 (?), VRFMOD,DEPGEN ,DTCHPM** AUTEUR, DATE DE CREATION:* -------------------------**     PASCAL MANIGOT     19 DECEMBRE 1984** LANGAGE:* --------**     FORTRAN77************************************************************************** -INC PPARAM-INC CCOPTIO-INC SMLMOTS*      REAL*8 PROPRE(*)*      COMMON/CITINV/ NBITER,IACCEL,NUMAC,IPX2,IPX0,IPX1,IPBX1,     C IBBX1,IBBX2,ITPRO,DIFREL*      LOGICAL CONVRG*      PARAMETER (INFINI = 9999)*      IF (IIMPI .EQ. 747) THEN         CALL GIBTEM(XKT)         INTERR(1)=XKT         CALL ERREUR(-259)      ENDIF**     PREPARATION DES ITERATIONS:      IBBX1=0      IBBX2 = IPMX      IPX2 = IPX      NUMAC = NUMACC      NBITER = 0      IACCEL = 0      NUMXBX = -10      X1BX1 = 1.D10      IPLMOX=0      IPLMOY=0CC     PREPARATION DES TABLEAUX DONNANT LA CORRESPONDANCE DES NOMSC     D INCONNUE DANS X ET MX  STOCKE DANS UN LIST MOTC      CALL CORRSP(ipa,IPX,IPMX,IPLMOX,IPLMOY)CCC**     -- DEBUT DES ITERATIONS INVERSES --*      DIFREL = 1.E10  205 IF (DIFREL .GT. PRECI1 .AND. NBITER .LT. ITERMX) THEN         IF (IBBX1.NE.0) CALL DTCHPO(IBBX1)         IBBX1 = IBBX2         CALL ITINV1 (IPA,IPB)         IF (IERR .NE. 0) RETURN         GOTO 205      END IF*      convrg=.false.      DO 300 IB300=1,INFINI**        -- CALCUL DE "XT.B.X" POUR 2 ITERES --*         IF (NBITER .LT. ITERMX) THEN            IF (NBITER .EQ. (NUMXBX + 1) ) THEN               X1BX1 = X2BX2            ELSE*              PRODUIT SCALAIRE X1.(M.X1) :C              CALL XTMX (IPX1,IPB,  X1BX1)               CALL XTY1 (IPX1,IBBX1,IPLMOX,IPLMOY,X1BX1)               IF (IERR .NE. 0) RETURN            END IF         END IF**        PRODUIT X2T.B.X2 :         CALL XTY1(IPX2,IBBX2,IPLMOX,IPLMOY,X2BX2)         IF (IERR .NE. 0) RETURN         NUMXBX = NBITER*         DIFXBX = ABS(1.D0 - ABS(X1BX1 / X2BX2) )*         if (convrg) goto 302         IF (DIFREL .LE. PRECI1 .AND. DIFXBX .LE. PRECI2) THEN            CONVRG = .TRUE.*           --> SORTIE DE BOUCLE N.300 apres l'iteration suivante         ELSE IF (NBITER .GE. ITERMX) THEN            CONVRG = .FALSE.*           --> SORTIE DE BOUCLE N.300            GOTO 302         ENDIF            CALL DTCHPO(IBBX1)            IBBX1 = IBBX2            CALL ITINV1 (IPA,IPB)            IF (IERR .NE. 0) RETURN*  300    CONTINUE*     END DO  302 CONTINUE*      IF (IIMPI.EQ.2) WRITE (IOIMP,2000) NBITER 2000 FORMAT (//,1X,I3,' ITERATIONS INVERSES ONT ETE EFFECTUEES.'///)**     -- RETOUR DU MODE PROPRE --*C     CALL XTMX (IPX2,IPA,  X2AX2)      CALL MUCPRI(IPX2,IPA,IPAX2)       CALL XTY1(IPX2,IPAX2,IPLMOX,IPLMOY,X2AX2)      IF (IERR .NE. 0) RETURN      VALPP = X2AX2 / X2BX2*      PROPRE(1) = VALPP      PROPRE(2) = X2BX2      IPX = IPX2CC     CALCUL DES MASSES GEN. INTRODUCTION DES COEF. PI OU 2PIC     EVENTUELSC      CALL MASGEN(IPX,PROPRE)      CALL DEPGEN( IPB, IPX,PROPRE,IBBX2,IPLMOX,IPLMOY)**     IMPRESSIONS*      IF (IIMPI.EQ.30) WRITE(IOIMP,1000) (PROPRE(I),I=1,5)1000  FORMAT(/10X,'SBR  ITINV',/10X,5(E12.5,1X))***     SUPPRESSION DES 'CHPOINT' DE TRAVAIL:      IF ( (IACCEL + 1) .EQ. NUMAC) THEN         CALL DTCHPO (IPX0)      END IF      CALL DTCHPO (IPX1)      CALL DTCHPO (IBBX2)      CALL DTCHPO (IPAX2)      MLMOTS =IPLMOX      MLMOT1 =IPLMOY      SEGSUP MLMOTS,MLMOT1*      IF (IIMPI .EQ. 30) THEN         CALL GIBTEM(XKT)         INTERR(1)=XKT         CALL ERREUR(-259)*        VERIFICATION DU MODE:         CALL VRFMOD (IPA,IPB,IPX,VALPP)         IF (IERR .NE. 0) RETURN         CALL GIBTEM(XKT)         INTERR(1)=XKT         CALL ERREUR(-259)      END IF*      END     

© Cast3M 2003 - Tous droits réservés.
Mentions légales