1 : C DYNEVE SOURCE CHAT 05/01/12 23:18:59 5004 2 : SUBROUTINE DYNEVE(IPRIG,ICHT1,ICHT2,ICHT3,ICHT4, 3 : & IPCGT,TINI,DT,NPAS,ITAB1,IPCHM,IPPT) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : ************************************************************************ 7 : * 8 : * D Y N E V E 9 : * ----------- 10 : * 11 : * FONCTION: 12 : * --------- 13 : * UTILITAIRE DE L'OPERATEUR "DYNE" 14 : * VERIFICATION, IDENTIFICATION ET PREPARATION DES OPERANDES 15 : * 16 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 17 : * ----------- 18 : * 19 : * IPRIG (E/S) TABLEAU DE POINTEURS SUR DES RIGIDITES, AVEC : 20 : * IPRIG(1) POINTEUR SUR L'OBJET M 21 : * IPRIG(2) POINTEUR SUR L'OBJET K 22 : * IPRIG(3) POINTEUR SUR L'OBJET A 23 : * IPRIG(4) POINTEUR SUR L'OBJET Z ( EN SORTIE ) 24 : * MCHT (S) POINTEUR SUR LE SEGMENT MCHT ( LAISSE ACTIF ) 25 : * IPCGT (E) TABLEAU DE POINTEURS SUR LES OBJETS CHARGEMENT, AVEC 26 : * IPCGT(1) POINTEUR SUR CGB 27 : * IPCGT(2) POINTEUR SUR CGF 28 : * TINI (E) TEMPS INITIAL 29 : * DT (E) PAS DE TEMPS 30 : * NPAS (E) NOMBRE DE PAS DE CALCUL 31 : * ITAB1 (E) POINTEUR SUR LA TABLE DES CHAMPS INITIAUX 32 : * IPCHM (S) TABLEAU DE POINTEURS SUR LES CHAMPS INITIAUX, AVEC : 33 : * IPCHM(1) POINTEUR SUR U0 34 : * IPCHM(2) POINTEUR SUR V0 35 : * IPPT (S) TABLEAU DE POINTEURS, AVEC : -1 36 : * IPPT(1) POINTEUR SUR LE VECTDOUB CONTENANT M 37 : * ( ACTIF ) 38 : * IPPT(2) POINTEUR SUR UN SEGMENT MBLO ( ACTIF ) 39 : * IPPT(3) POINTEUR SUR UN SEGMENT MBLO ( ACTIF ) 40 : * IPPT(4) POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF ) 41 : * IPPT(5) POINTEUR SUR LE SEGMENT MMATRI ( ACTIF ) 42 : * IPPT(6) POINTEUR SUR LE SEGMENT MZZZ ( ACTIF ) 43 : * 44 : * ATTENTION : ON ESSAIE DE D'ACTIVER UNE FOIS POUR TOUTES | 45 : * 46 : * AUTEUR, DATE DE CREATION: 47 : * ------------------------- 48 : * DENIS ROBERT, LE 20 OCTOBRE 1988. 49 : * REVU ET CORRIGE DECEMBRE 89 MP 50 : * 51 : * LANGAGE: 52 : * -------- 53 : * ESOPE + FORTRAN77 54 : * 55 : ************************************************************************ 56 : * 57 : * MODULES UTILISES: 58 : * 59 : -INC CCOPTIO 60 : -INC SMVECTD 61 : * 62 : INTEGER IPRIG(4),IPCGT(2),IPCHM(2),IPPT(6) 63 : LOGICAL L0,L1 64 : CHARACTER*9 MO1,TYPRET,CHARRE 65 : * 66 : IPM=0 67 : IPCGTB=0 68 : IPCGTF=0 69 : ICHOLX=0 70 : * 71 : SEGMENT,MCHT1 72 : REAL*8 VCC1(IDDL) 73 : ENDSEGMENT 74 : * 75 : SEGMENT,MCHT2 76 : REAL*8 VCC2(NDDL) 77 : ENDSEGMENT 78 : * 79 : SEGMENT,MCHT3 80 : REAL*8 COE1(LCOE) 81 : ENDSEGMENT 82 : POINTEUR MCHT32.MCHT3 83 : * 84 : *--- SEGMENTS CONTENANT A ET A M 85 : * 86 : SEGMENT,MBLO 87 : REAL*8 BLO(IDDL,NDDL) 88 : ENDSEGMENT 89 : POINTEUR MBLO2.MBLO 90 : * 91 : *--- VERIFICATION ET IDENTIFICATION DES OBJETS RIGIDITE 92 : *+* 93 : IPRIGM=IPRIG(1) 94 : IPRIGK=IPRIG(2) 95 : IPRIGA=IPRIG(3) 96 : * 97 : *-------------------------------------------------* 98 : *--- ASSEMBLAGE EVENTUEL DE LA MATRICE MASSE ---* 99 : *-------------------------------------------------* 100 : * 100 : CALL DYNE00(IPRIGM,IRSCPR,ICHOLX,LONVEC) 101 : IF (IERR.NE.0) RETURN 102 : INC=LONVEC 103 : SEGINI,MVECTD 103 : CALL ZERO(VECTBB,LONVEC,1) 104 : IPMASI=MVECTD 105 : * 106 : *--------------------------------------------------* 107 : *--- LUMPAGE ET INVERSION DE LA MATRICE MASSE ---* 108 : *--------------------------------------------------* 109 : * 109 : CALL DYNE01(ICHOLX,IRSCPR,IPRIGM,IPMASI) 110 : IF (IERR.NE.0) RETURN 111 : * 112 : *----------------------------------* 113 : * -1 T * 114 : *--- CALCUL DE : Z = A M A ---* 115 : *----------------------------------* 116 : * 116 : CALL DYNE02(ICHOLX,IRSCPR,LONVEC,IPRIGA,IPMASI,IPZ,IPM, 117 : & IBLO,IBLO2,IPRIGZ,ICPC) 118 : IF (IERR.NE.0) RETURN 119 : MBLO=IBLO 120 : IDDL=BLO(/1) 121 : NDDL=BLO(/2) 122 : MVECTD=IPMASI 123 : SEGSUP,MVECTD 124 : * 125 : *---------------------------------------* 126 : *--- CONCERNANT LES CHARGEMENTS... ---* 127 : *---------------------------------------* 128 : * 129 : NCGT=0 130 : DO 110 ICGT=1,2 131 : IF (IPCGT(ICGT).NE.0) THEN 132 : * 133 : *--- ON A TROUVE UN CHARGEMENT 134 : * 135 : NCGT=NCGT+1 136 : ENDIF 137 : 110 CONTINUE 138 : * END DO 139 : IF (NCGT.EQ.1) THEN 140 : * 141 : *--- UN SEUL CHARGEMENT, A IDENTIFIER... 142 : *+* ON SUPPOSE ABUSIVEMENT QU'IL S'AGIT DE IPCGTF | 143 : IPCGTF=IPCGT(1) 144 : ELSE 145 : * 146 : *--- CGB ET CGF 147 : * 148 : IPCGTB=IPCGT(1) 149 : IPCGTF=IPCGT(2) 150 : ENDIF 151 : * | IPCGTB DANS IPCGT(1) 152 : *--- RANGEMENT | 153 : * | IPCGTF DANS IPCGT(2) 154 : IPCGT(1)=0 155 : IPCGT(2)=0 156 : IPCGT(1)=IPCGTB 157 : IPCGT(2)=IPCGTF 158 : * 159 : *--- D'UN OBJET CHARGEMENT, ON TIRE UN VECTEUR ET UNE LISTE DE 160 : *--- COEFFICIENTS, RANGES DANS LE SEGMENT MCHT 161 : * 162 : LCOE=NPAS+1 163 : SEGINI,MCHT1 164 : ICHT1=MCHT1 165 : SEGINI,MCHT2 166 : ICHT2=MCHT2 167 : SEGINI,MCHT3 168 : ICHT3=MCHT3 169 : SEGINI,MCHT32 170 : ICHT4=MCHT32 171 : * 171 : CALL ZERO(VCC1,IDDL,1) 171 : CALL ZERO(COE1,LCOE,1) 171 : CALL ZERO(VCC2,NDDL,1) 171 : CALL ZERO(MCHT32.COE1,LCOE,1) 172 : * 173 : IF (IPCGT(2).NE.0) THEN 173 : CALL DYNECH(IPCGT(2),TINI,DT,NPAS,ICHOLX,NDDL,ICHT2,ICHT4) 174 : IF (IERR.NE.0) RETURN 175 : ENDIF 176 : * 177 : IF (IPCGT(1).NE.0) THEN 177 : CALL DYNE09(IPCGT(1),TINI,DT,NPAS,ICPC,IDDL,ICHT1,ICHT3) 178 : IF (IERR.NE.0) RETURN 179 : ENDIF 180 : * 181 : *--------------------------------------------------------------------* 182 : *--- VERIFICATION DE LA TABLE ET EXTRACTION DES CHAMPS INITIAUX ---* 183 : *--------------------------------------------------------------------* 184 : * 184 : CALL ACCTAB(ITAB1,'MOT',I0,X0,'SOUSTYPE',L0,IP0, 185 : & 'MOT',I1,X1,MO1,L1,IP1) 186 : IF (IERR.NE.0) RETURN 187 : IF (MO1.NE.'MOUVEMENT') THEN 188 : * 189 : *--- ERREUR DANS LA RECHERCHE DE L'INDICE D'UNE TABLE 190 : * 190 : CALL ERREUR(314) 191 : RETURN 192 : ENDIF 193 : * 194 : TYPRET=' ' 194 : CALL ACCTAB(ITAB1,'MOT',I0,X0,'ACCTAB(ITAB1,'MOT',I0,X0,' DYNE03(IPRIGK,IRSCPR,MUCT,ICHOLX) 207 : IF (IERR.NE.0) RETURN 208 : * 209 : *--- REMPLISSAGE DES TABLEAUX DE POINTEURS 210 : * 211 : IPRIG(4)=IPRIGZ 212 : IPCHM(1)=IPCHM1 213 : IPCHM(2)=IPCHM2 214 : IPPT(1)=IPM 215 : IPPT(2)=IBLO 216 : IPPT(3)=IBLO2 217 : IPPT(4)=MUCT 218 : IPPT(5)=ICHOLX 219 : IPPT(6)=IPZ 220 : * 221 : END 222 : 223 :
© Cast3M 2003 - All rights reserved.
Disclaimer