Download cotra3.eso

Back to the list

   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