1 : C COTRA3 SOURCE PV 11/03/07 21:15:59 6885 2 : SUBROUTINE COTRA3(KERRE,NSTRS,CMATE,WTRAV,N2EL,N2PTEL, 3 : 1 MFR,IFOU,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT, 4 : 2 NBPGAU,NELMAT,SECT,LHOOK,CRIGI,NMATT,WRK0,WRK1) 5 : C 6 : IMPLICIT INTEGER(I-N) 7 : IMPLICIT REAL*8(A-H,O-Z) 8 : C 9 : -INC CCOPTIO 10 : -INC SMEVOLL 11 : -INC SMLREEL 12 : -INC SMCOORD 13 : ****************************************************************** 14 : * RECUPERATION DES LOIS DE COMPORTEMENT POUR * 15 : * LES ELEMENTS GLOBAUX * 16 : ****************************************************************** 17 : * ENTREES : 18 : * WRK0 SEGMENT DE TRAVAIL CONTENANT LES CARACTERISTIQUES 19 : * MATERIAUX 20 : * WRK1 SEGMENT DE TRAVAIL CONTENANT LES EFFORTS, LES DEPLACEMENTS 21 : * ET LA MATRICE DE HOOK 22 : * NMATT =NOMBRE DE COMPOSANTES DE PROPRIETES DE MATERIAU 23 : * WTRAV SEGMENT DE TRAVAIL CONTENANT LES TABLEAUX UTILISES POUR 24 : * LE CALCUL DE LA MATRICE DE HOOKE ELASTIQUE (SS-PROGRAMME CALSIG) 25 : * 26 : * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE 27 : * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE 28 : * MFR = NUMERO DE LA FORMULATION 29 : * IFOU = OPTION DE CALCUL 30 : * IB = NUMERO DE L ELEMENT COURANT 31 : * IGAU = NUMERO DU POINT COURANT 32 : * EPAIST= EPAISSEUR 33 : * NBPGAU= NBRE DE POINTS DE GAUSS 34 : * MELE = NUMERO DE L ELEMENT FINI 35 : * NPINT = NBRE DE POINTS D INTEGRATION 36 : * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES 37 : * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES 38 : * SECT = SECTION 39 : * LHOOK = TAILLE DE LA MATRICE DE HOOKE 40 : * 41 : * SORTIES : 42 : * KERRE INDICATEUR D'ERREUR 43 : * 44 : * VARIABLES INTERNES CREES 45 : * INDLEG CODAGE DES LOIS CONTENUES DANS L'ELEMENT GLOBAL 46 : * WRKGL SEGMENT CONTENANT LES LOIS DE COMPORTEMENT RETENUES 47 : * (3 AU MAXIMUM) 48 : * IPWRKGL SEGMENTS DE POINTEURS SUR LES LOIS DE COMPORTEMENT 49 : * 50 : ***************************************************************** 51 : * 52 : SEGMENT WRK0 53 : REAL*8 XMAT(NCXMAT) 54 : ENDSEGMENT 55 : * 56 : SEGMENT WRK1 57 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 58 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 59 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 60 : ENDSEGMENT 61 : * 62 : SEGMENT WRKGL 63 : REAL*8 TLOICO(NBLOI) 64 : ENDSEGMENT 65 : * 66 : SEGMENT IPWRKGL 67 : POINTEUR IPOL(3).WRKGL 68 : ENDSEGMENT 69 : * 70 : SEGMENT WTRAV 71 : REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) 72 : REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) 73 : REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) 74 : REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM) 75 : REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) 76 : ENDSEGMENT 77 : * 78 : DIMENSION CRIGI(*) 79 : * 80 : CHARACTER*8 CMATE 81 : * 82 : SEGINI IPWRKGL 83 : * 84 : * QUELQUES INITIALISATIONS A 0 85 : * 86 : KERRE=0 87 : INDLEG = 0 88 : NRLEGI = 0 89 : * 90 : * RECUPERATION DES LOIS 91 : * 92 : DO 50 IJ = 1,5 93 : IF(IJ.EQ.1)IJOJO = 7 94 : IF(IJ.EQ.2)IJOJO = 8 95 : IF(IJ.EQ.3)IJOJO = 9 96 : IF(IJ.EQ.4)IJOJO = 3 97 : IF(IJ.EQ.5)IJOJO = 4 98 : * 99 : * RECHERCHE DES POINTEURS NON NULS DE XMAT 100 : * 101 : IBOU = XMAT(IJOJO) 102 : IF(IBOU.EQ.0) GO TO 50 103 : * 104 : * CODAGE DES TYPES DE LOIS RENTREES 105 : * 106 : IF(IJ.EQ.1) INDLEG = 1 107 : * 108 : IF(IJ.EQ.2) INDLEG = INDLEG + 10 109 : * 110 : IF(IJ.EQ.3)THEN 111 : IF(INDLEG.LT.10)THEN 112 : INDLEG = INDLEG + 20 113 : ELSE 114 : MOTERR(5:12) = 'FLXYFLXZ' 115 : KERRE = 57 116 : END IF 117 : END IF 118 : * 119 : IF(IJ.EQ.4) INDLEG = INDLEG + 100 120 : * 121 : IF(IJ.EQ.5)THEN 122 : IF(INDLEG.LT.100)THEN 123 : INDLEG = INDLEG + 200 124 : ELSE 125 : MOTERR(5:12) = 'CISYCISZ' 126 : KERRE = 57 127 : END IF 128 : END IF 129 : * 130 : *RECUPERATION DES EVOLUTIONS RENTREES DANS MATE 131 : * 132 : MEVOLL=nint(XMAT(IJOJO)) 133 : IF(MEVOLL.NE.0) THEN 134 : SEGACT MEVOLL 135 : JOJO = IEVOLL(/1) 136 : * 137 : IF(JOJO.NE.1)THEN 138 : KERRE=31 139 : SEGDES MEVOLL 140 : SEGSUP IPWRKGL 141 : RETURN 142 : END IF 143 : * 144 : KEVOLL=IEVOLL(1) 145 : SEGACT KEVOLL 146 : MLREEL=IPROGX 147 : MLREE1=IPROGY 148 : SEGDES KEVOLL 149 : SEGACT MLREEL,MLREE1 150 : NBPOIX=PROG(/1) 151 : NBPOIY=MLREE1.PROG(/1) 152 : * 153 : * TEST SUR LA TAILLE DES LOIS RENTREES 154 : * 155 : IF(NBPOIX.NE.NBPOIY) KERRE=58 156 : IF (IJ.EQ.1)THEN 157 : IF((NBPOIX.NE.4).and.(nbpoix.ne.6))KERRE=58 158 : ELSE 159 : IF((NBPOIX.NE.5).and.(nbpoix.ne.7))KERRE=58 160 : ENDIF 161 : * 162 : * RETRANSCRIPTION DES LOIS DE COMPORTEMENT DANS WRKGL 163 : * 164 : IF(KERRE.NE.0) THEN 165 : SEGDES MLREEL,MLREE1 166 : SEGDES MEVOLL 167 : GO TO 777 168 : END IF 169 : * 170 : NRLEGI = NRLEGI + 1 171 : NBLOI = 2 * NBPOIX 172 : SEGINI WRKGL 173 : IPOL(NRLEGI) = WRKGL 174 : DO 10 I=1,NBPOIX 175 : PEPS=PROG(I) 176 : PSIG=MLREE1.PROG(I) 177 : TLOICO((2*I)-1) = PSIG 178 : TLOICO(2*I) = PEPS 179 : 10 CONTINUE 180 : SEGDES MLREEL, MLREE1 181 : END IF 182 : 50 CONTINUE 183 : * 184 : IF(NRLEGI.EQ.0)THEN 185 : KERRE = 59 186 : RETURN 187 : END IF 188 : * 189 : SEGDES MEVOLL 190 : C 191 : 777 CONTINUE 192 : C 193 : C UTILISATION DES LOIS DE COMPORTEMENT 194 : C 195 : IF(KERRE.EQ.0) THEN 195 : CALL DDIS(NSTRS,CMATE,N2EL,N2PTEL,WTRAV,MFR,IFOU,IB, 196 : 1 IGAU,EPAIST,MELE,NPINT,NBPGAU,NBGMAT,NELMAT,SECT,LHOOK, 197 : 2 CRIGI,NMATT,INDLEG,IPWRKGL,WRKGL,WRK0,WRK1,KERRE) 198 : C 199 : C DESACTIVATION DES SEGMENTS TEMPORAIRES WRKGL ET IPWRKGL 200 : C 201 : DO 800 I=1,NRLEGI 202 : SEGSUP IPOL(I) 203 : 800 CONTINUE 204 : ENDIF 205 : C 206 : SEGSUP IPWRKGL 207 : C 208 : RETURN 209 : 210 : END 211 : 212 :
© Cast3M 2003 - All rights reserved.
Disclaimer