1 : C DYNEPL SOURCE CHAT 05/01/12 23:18:36 5004 2 : SUBROUTINE DYNEPL(IPRIG,ICHT1,ICHT2,ICHT3,ICHT4, 3 : & IPCGT,IDDL,NDDL,DT,NPAS,NINS,IPCHM,IPPT,ITAB2) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : ************************************************************************ 7 : * 8 : * D Y N E P L 9 : * ----------- 10 : * 11 : * FONCTION: 12 : * --------- 13 : * UTILITAIRE DE L'OPERATEUR "DYNE" 14 : * INITIALISATION ET GESTION TEMPORELLE DE L'ALGORITHME 15 : * 16 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 17 : * ----------- 18 : * 19 : * IPRIG (E) 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 24 : * ICHT (E) POINTEUR SUR LE SEGMENT MCHT ( ACTIF ) 25 : * IPCGT (E) TABLEAU DE POINTEURS SUR DES CHARGEMENTS, AVEC : 26 : * IPCGT(1) POINTEUR SUR CGB 27 : * IPCGT(2) POINTEUR SUR CGF 28 : * IDDL (E) NOMBRE DE DDL LIES 29 : * NDDL (E) NOMBRE DE DDL 30 : * DT (E) PAS DE TEMPS 31 : * NPAS (E) NOMBRE DE PAS DE CALCUL 32 : * NINS (E) ON VEUT UN RESULTAT TOUS LES NINS PAS DE CALCUL 33 : * IPCHM (E) TABLEAU DE POINTEURS SUR LES CHAMPS INITIAUX, AVEC : 34 : * IPCHM(1) POINTEUR SUR U0 35 : * IPCHM(2) POINTEUR SUR V0 36 : * IPPT (E) TABLEAU DE POINTEURS, AVEC : -1 37 : * IPPT(1) POINTEUR SUR LE VECTDOUB CONTENANT M 38 : * ( ACTIF ) 39 : * IPPT(2) POINTEUR SUR UN SEGMENT MBLO ( ACTIF ) 40 : * IPPT(3) POINTEUR SUR UN SEGMENT MBLO ( ACTIF ) 41 : * IPPT(4) POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF ) 42 : * IPPT(5) POINTEUR SUR LE SEGMENT MMATRI ( ACTIF ) 43 : * IPPT(6) POINTEUR SUR LE SEGMENT MZZZ ( ACTIF ) 44 : * ITAB2 (S) POINTEUR SUR LA TABLE RESULTAT 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 SMTABLE 61 : * 62 : PARAMETER ( O0= 0.D0,O1=-1.D0,O2=2.D0,O3=-0.5D0 ) 63 : * 64 : INTEGER IPCHN(6),IPRIG(4),IPCHM(2),IPPT(6),IPCGT(2) 65 : * 66 : *--- SEGMENT CONTENANT LES VECTEURS DE TRAVAIL POUR "DYNEPA" 67 : * 68 : * SEGMENT,MVPA 69 : * REAL*8 VCHT1(NDDL),VCHT2(NDDL),VCHT3(NDDL) 70 : * REAL*8 VEC1(NDDL),VEC2(NDDL),VEC3(NDDL) 71 : * REAL*8 VEC4(IDDL),VEC5(IDDL),VEC6(IDDL) 72 : * REAL*8 VCH1(NDDL),VCH2(NDDL),VCH3(NDDL) 73 : * REAL*8 VCH4(NDDL),VCH5(NDDL),VCH6(NDDL) 74 : * ENDSEGMENT 75 : * VCHT1 ---> MCHT41 76 : * VCHT2 ---> MCHT42 77 : * VCHT3 ---> MCHT43 78 : * VEC1 ---> MCHT51 79 : * VEC2 ---> MCHT52 80 : * VEC3 ---> MCHT53 81 : * VCH1 ---> MCHT61 82 : * VCH2 ---> MCHT62 83 : * VCH3 ---> MCHT63 84 : * VCH4 ---> MCHT64 85 : * VCH5 ---> MCHT65 86 : * VCH6 ---> MCHT66 87 : * VEC4 ---> MCHT12 88 : * VEC5 ---> MCHT13 89 : * VEC6 ---> MCHT14 90 : * 91 : *--- SEGMENT CONTENANT LES VECTEURS DE TRAVAIL POUR "DYNEPL" 92 : * 93 : * SEGMENT,MVPL 94 : * REAL*8 VV1(NDDL),VV2(NDDL),VV3(NDDL),VV4(NDDL),VV5(NDDL) 95 : * ENDSEGMENT 96 : * 97 : * VV1 ---> MCHT22 98 : * VV2 ---> MCHT23 99 : * VV3 ---> MCHT24 100 : * VV4 ---> MCHT25 101 : * VV5 ---> MCHT26 102 : *--- SEGMENT RELATIF AUX OBJETS CHARGEMENT 103 : * 104 : SEGMENT,MCHT1 105 : REAL*8 VCC1(IDDL) 106 : ENDSEGMENT 107 : POINTEUR MCHT12.MCHT1,MCHT13.MCHT1,MCHT14.MCHT1 108 : * 109 : SEGMENT,MCHT2 110 : REAL*8 VCC2(NDDL) 111 : ENDSEGMENT 112 : POINTEUR MCHT22.MCHT2,MCHT23.MCHT2,MCHT24.MCHT2 113 : POINTEUR MCHT25.MCHT2,MCHT26.MCHT2 114 : POINTEUR MCHT41.MCHT2,MCHT42.MCHT2,MCHT43.MCHT2 115 : POINTEUR MCHT51.MCHT2,MCHT52.MCHT2,MCHT53.MCHT2 116 : POINTEUR MCHT61.MCHT2,MCHT62.MCHT2,MCHT63.MCHT2 117 : POINTEUR MCHT64.MCHT2,MCHT65.MCHT2,MCHT66.MCHT2 118 : * 119 : SEGMENT,MCHT3 120 : REAL*8 COE1(LCOE) 121 : ENDSEGMENT 122 : POINTEUR MCHT32.MCHT3 123 : * 124 : DT2=DT**2 125 : DT3=DT2/O2 126 : DT4=DT/O2 127 : X1=O1/DT 128 : * 128 : CALL CRTABL(MTABLE) 129 : ITAB2=MTABLE 130 : IPCHM3=0 131 : * SEGINI,MVPA 132 : SEGINI MCHT12,MCHT13,MCHT14 133 : ICHT12=MCHT12 134 : ICHT13=MCHT13 135 : ICHT14=MCHT14 136 : SEGINI MCHT41,MCHT42,MCHT43 137 : ICHT41=MCHT41 138 : ICHT42=MCHT42 139 : ICHT43=MCHT43 140 : SEGINI MCHT51,MCHT52,MCHT53 141 : ICHT51=MCHT51 142 : ICHT52=MCHT52 143 : ICHT53=MCHT53 144 : SEGINI MCHT61,MCHT62,MCHT63,MCHT64,MCHT65,MCHT66 145 : ICHT61=MCHT61 146 : ICHT62=MCHT62 147 : ICHT63=MCHT63 148 : ICHT64=MCHT64 149 : ICHT65=MCHT65 150 : ICHT66=MCHT66 151 : * SEGINI,MVPL 152 : SEGINI MCHT22,MCHT23,MCHT24,MCHT25,MCHT26 153 : ICHT22=MCHT22 154 : ICHT23=MCHT23 155 : ICHT24=MCHT24 156 : ICHT25=MCHT25 157 : ICHT26=MCHT26 158 : * 159 : MCHT1=ICHT1 160 : MCHT2=ICHT2 161 : MCHT3=ICHT3 162 : MCHT32=ICHT4 163 : * 164 : NUMPAS=0 165 : * 166 : *-------------------------------------------------------* 167 : *--- EQUATION D'EQUILIBRE : G0 = M-1 ( F0 - K U0 ) ---* 168 : *-------------------------------------------------------* 169 : * 169 : CALL DYNE04(IPPT(5),IPCHM(1),ICHT22,NDDL,'INCO') 170 : IF (IERR.NE.0) RETURN 171 : * 171 : CALL DYNE05(IPRIG(2),ICHT22,ICHT23,NDDL,IPPT(4)) 172 : IF (IERR.NE.0) RETURN 173 : * 174 : IF (IPCGT(2).NE.0) THEN 174 : CALL DYNEC1(VCC2,MCHT32.COE1,NUMPAS,NDDL,MCHT24.VCC2) 175 : ENDIF 176 : * 176 : CALL COLIVE(MCHT23.VCC2,MCHT24.VCC2,NDDL,1.D0,-1.D0, 177 : & MCHT24.VCC2) 178 : * 178 : CALL DYNE10(ICHT25,IPPT(1),ICHT66,NDDL) 179 : * 180 : *--- CALCUL DE : U1 = U0 + ( DT * V0 ) + ( DT2/2 * G0 ) 181 : * 181 : CALL ZERO(MCHT23.VCC2,NDDL,1) 182 : * 182 : CALL DYNE04(IPPT(5),IPCHM(2),ICHT65,NDDL,'INCO') 183 : * 183 : CALL COLIVE(MCHT65.VCC2,MCHT66.VCC2,NDDL,DT,DT3, 184 : & MCHT23.VCC2) 184 : CALL COLIVE(MCHT22.VCC2,MCHT23.VCC2,NDDL,1.D0,1.D0, 185 : & MCHT64.VCC2) 186 : * 187 : *-------------------------------------* 188 : *--- BOUCLE SUR LES PAS DE TEMPS ---* 189 : *-------------------------------------* 190 : * 191 : NSOR=0 192 : NPPP=0 193 : DO 100 NUMPAS=1,NPAS 194 : NPPP=NPPP+1 195 : * 196 : *--- DEPLACEMENTS ET FORCES IMPOSES AU COURS DU TEMPS 197 : * 198 : IF (IPCGT(1).NE.0) THEN 198 : CALL DYNEC1(VCC1,COE1,NUMPAS+1,NDDL,MCHT41.VCC2) 199 : ENDIF 200 : * 201 : IF (IPCGT(2).NE.0) THEN 201 : CALL DYNEC1(VCC2,MCHT32.COE1,NUMPAS,NDDL, 202 : & MCHT43.VCC2) 203 : ENDIF 204 : * VCH4 ---> VCH1 205 : *--- TRANSFERTS : VCH5 ---> VCH2 206 : * VCH6 ---> VCH3 206 : CALL VTRANS(MCHT61.VCC2,MCHT64.VCC2,NDDL) 206 : CALL VTRANS(MCHT62.VCC2,MCHT65.VCC2,NDDL) 206 : CALL VTRANS(MCHT63.VCC2,MCHT66.VCC2,NDDL) 207 : * 208 : *-----------------------------------------------------* 209 : *--- CALCUL D'UN PAS : U1 V0 G0 ---> U2 V1 G1 ---* 210 : *-----------------------------------------------------* 211 : * 211 : CALL DYNEPA(IPRIG,IPPT,IDDL,NDDL,DT, 212 : & ICHT41,ICHT43, 213 : & ICHT51,ICHT52,ICHT53,ICHT12,ICHT13,ICHT14, 214 : & ICHT61,ICHT62,ICHT63,ICHT64,ICHT65,ICHT66) 215 : IF (IERR.NE.0) RETURN 216 : * 217 : IF (NPPP.EQ.NINS) THEN 218 : NPPP=0 219 : NSOR=NSOR+1 220 : * 221 : *--- ON RETRANSFORME LES VECTEURS EN CHPOINTS 222 : * 222 : CALL DYNE07(ICHT61,IPPT(5),IPCHM(1),IPCHP1) 222 : CALL DYNE07(ICHT65,IPPT(5),IPCHM(1),IPCHP2) 222 : CALL DYNE07(ICHT66,IPPT(5),IPCHM(1),IPCHP3) 223 : * 224 : *--- ARCHIVAGE DES RESULTATS 225 : * 225 : CALL DYNERA(IPCHP1,IPCHP2,IPCHP3,NSOR,ITAB2) 226 : IF (IERR.NE.0) RETURN 227 : ENDIF 228 : * 229 : *--- FIN DE LA BOUCLE SUR LES PAS DE TEMPS 230 : * 231 : 100 CONTINUE 232 : * END DO 233 : * 234 : * SEGSUP MVPA 235 : SEGSUP MCHT12,MCHT13,MCHT14 236 : SEGSUP MCHT41,MCHT42,MCHT43 237 : SEGSUP MCHT51,MCHT52,MCHT53 238 : SEGSUP MCHT61,MCHT62,MCHT63,MCHT64,MCHT65,MCHT66 239 : * SEGSUP MVPL 240 : SEGSUP MCHT22,MCHT23,MCHT24,MCHT25,MCHT26 241 : * SEGSUP,MCHT 242 : SEGSUP MCHT1,MCHT2,MCHT3,MCHT32 243 : SEGDES MTABLE 244 : * 245 : END 246 :
© Cast3M 2003 - All rights reserved.
Disclaimer