Download fcoul2.eso

Back to the list

   1 : C FCOUL2    SOURCE    BR232186  12/08/01    22:28:45     7456           
   2 :       SUBROUTINE FCOUL2(DEPSI,INFIBR,MELE,IPMAIL,MINTE,NBPTEL,IVASTR,
   3 :      1     IVARI,IVAMAT,IVACAR,NSTRS,NVARI,NMATT,NCARR,
   4 :      2     SIGMA,IVASTF,IVARIF,EPSUP,EPINF,DAMAG,NSTRS2)
   5 : ***********************************************************************
   6 : *      ECOULEMENT INELASTIQUE POUR LES MODELE A FIBRE
   7 : *      travail sur chaque les element de chaque ss-zone du modele
   8 : *      de section
   9 : **********************************************************************
  10 : *      Pierre Pegon (ISPRA) Juillet/Aout 1993
  11 : ***********************************************************************
  12 : * ENTREES :
  13 : *
  14 : * DEPSI(6) INCREMENT DE DEFORMATION POUR LA FIBRE CENTRALE
  15 : * INFIBR = NUMERO DE MATERIAU INELASTIQUE
  16 : * MELE    = NUMERO  ELEMENT FINI
  17 : * IPMAIL = POINTEUR DU MAILLAGE
  18 : * NBPTEL =NOMBRE DE POINTS PAR ELEMENT
  19 : * IVASTR =POINTEUR SUR UN SEGMENT MPTVAL DE CONTRAINTES
  20 : * IVAMAT =POINTEUR SUR UN SEGMENT MPTVAL DE MATERIAU
  21 : * IVACAR =POINTEUR SUR UN SEGMENT MPTVAL DE CARACT. GEOMETRIQUES
  22 : * NSTRS  =NOMBRE DE COMPOSANTES DE CONTRAINTES
  23 : * NVARI  =NOMBRE DE COMPOSANTES DE VARIABLES INTERNES
  24 : * NMATT  =NOMBRE DE COMPOSNATES DE PROPRIETES DE MATERIAU
  25 : * NCARR  =NOMBRE DE COMPOSNATES DE CARACTERISTIQUES GEOMETRIQUES
  26 : *
  27 : * SORTIES :
  28 : * SIGMA(6) EFFORT SUR LA FIBRE MOYENNE
  29 : * IVASTF  =POINTEUR SUR UN SEGMENT MPTVAL DE CONTRAINTES
  30 : * IVARIF  =POINTEUR SUR UN SEGMENT MPTVAL DE VARIABLES INTERNES
  31 : *
  32 : ************************************************************************
  33 :       IMPLICIT INTEGER(I-N)
  34 :       IMPLICIT REAL*8(A-H,O-Z)
  35 : *
  36 : -INC CCOPTIO
  37 : -INC SMCHAML
  38 : -INC SMELEME
  39 : -INC SMCOORD
  40 : -INC SMMODEL
  41 : -INC SMINTE
  42 : -INC CCHAMP
  43 : *
  44 :       SEGMENT MPTVAL
  45 :         INTEGER IPOS(NS)    ,NSOF(NS)
  46 :         INTEGER      IVAL(NCOSOU)
  47 :         CHARACTER*16 TYVAL(NCOSOU)
  48 :       ENDSEGMENT
  49 : *
  50 :       SEGMENT WWRK0
  51 :        REAL*8 XMAT(NCXMAT),XCAR(NCXCAR)
  52 :       ENDSEGMENT
  53 : *
  54 :       SEGMENT WWRK1
  55 :         REAL*8 SIG0(NSTRS),SIGF(NSTRS)
  56 :         REAL*8 VAR0(NVARI),VARF(NVARI)
  57 :       ENDSEGMENT
  58 : *
  59 :       SEGMENT WWRK2
  60 :         REAL*8 XE(3,NBBB),SHP(6,NBBB)
  61 :       ENDSEGMENT
  62 : *
  63 :       SEGMENT WRK2
  64 :         REAL*8 TRAC(LTRAC)
  65 :       ENDSEGMENT
  66 : *
  67 :       DIMENSION DEPSI(NSTRS2),SIGMA(NSTRS2)
  68 :       DIMENSION DEPS(3),DEPSB(3),SIG0B(3),SIGFB(3)
  69 : *
  70 : C+PP
  71 :       IST_DES=0
  72 :       IST_TOT=0
  73 : *      write(6,*) ' infibr  ',infibr
  74 : C+PP
  75 :       MFR =NUMMFR(MELE)
  76 :       MELEME=IPMAIL
  77 :       NBNN=NUM(/1)
  78 :       NBELEM=NUM(/2)
  79 :       NDEF=NSTRS
  80 : *
  81 : *    SEGMENT D'INTEGRATION
  82 : *
  83 : C*    SEGACT,MINTE           <- ACTIF EN E/S
  84 : *
  85 : *    INITIALISATION DES SEGMENTS DE TRAVAIL
  86 : *
  87 :       NCXMAT=NMATT + 1
  88 :       NCXCAR=NCARR
  89 :       NBBB=NBNN
  90 :       SEGINI WWRK0,WWRK1,WWRK2
  91 :       LTRAC=260
  92 :       SEGINI WRK2
  93 : *
  94 : *       BOUCLE SUR LES ELEMENTS
  95 : *
  96 :       DO 1000 IB=1,NBELEM
  97 : *
  98 : *       ON CHERCHE  LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  99 : *
  99 :          CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
 100 : *
 101 : *       BOUCLE SUR LES POINTS DE GAUSS
 102 : *
 103 :          DO 1100 IGAU=1,NBPTEL
 104 : *
 105 : *       ON CHERCHE LA POSITION DU POINT DE LA SECTION (X->Y) (Y->Z)
 106 : *
 107 :            YY=0.D0
 108 :            ZZ=0.D0
 109 :            DO IE1=1,NBNN
 110 :              CGAUSS=SHPTOT(1,IE1,IGAU)
 111 :              YY=YY+XE(1,IE1)*CGAUSS
 112 :              ZZ=ZZ+XE(2,IE1)*CGAUSS
 113 :            END DO
 114 : *
 115 : *       ON REMPLIT LES SHP ET ON CALCUL LE JACOBIEN
 116 : *
 117 :            DO IE2=1,NBNN
 118 :              DO IE1=1,6
 119 :                SHP(IE1,IE2)=SHPTOT(IE1,IE2,IGAU)
 120 :              END DO
 121 :            END DO
 121 : C PPf      CALL JACOBI(XE,SHP,2,NBNN,DJAC)
 122 : *
 123 : *       ON EN DEDUIT L'INCREMENT DE DEFORMATION
 124 : *
 125 :            IF (NSTRS2.EQ.3) THEN
 126 :              DEPS(1)=DEPSI(1)-YY*DEPSI(3)
 127 :              DEPS(2)=DEPSI(2)
 128 :              DEPS(3)=0.D0
 129 :            ELSE
 130 :              DEPS(1)=DEPSI(1)+ZZ*DEPSI(5)-YY*DEPSI(6)
 131 :              DEPS(2)=DEPSI(2)-ZZ*DEPSI(4)
 132 :              DEPS(3)=DEPSI(3)+YY*DEPSI(4)
 133 :            ENDIF
 134 : *
 135 : *       ON RECUPERE LES CONTRAINTES INITIALES
 136 : *
 137 :            MPTVAL=IVASTR
 138 :            DO IC=1,NSTRS
 139 :               MELVAL=IVAL(IC)
 140 :               IBMN=MIN(IB,VELCHE(/2))
 141 :               IGMN=MIN(IGAU,VELCHE(/1))
 142 :               SIG0(IC)=VELCHE(IGMN,IBMN)
 143 :            END DO
 144 : *
 145 : *     ON RECUPERE LES VARIABLES INTERNES
 146 : *
 147 :            MPTVAL=IVARI
 148 :            DO IC=1,NVARI
 149 :               MELVAL=IVAL(IC)
 150 :               IBMN=MIN(IB,VELCHE(/2))
 151 :               IGMN=MIN(IGAU,VELCHE(/1))
 152 :               VAR0(IC)=VELCHE(IGMN,IBMN)
 153 :            END DO
 154 : *
 155 : *     ON RECUPERE LES CONSTANTES DU MATERIAU
 156 : *
 157 :            MPTVAL=IVAMAT
 158 :            DO IC=1,NMATT
 159 :                  MELVAL=IVAL(IC)
 160 :                  IF(IC.LT.3)THEN
 161 :                    IIC=IC
 162 :                  ELSEIF(IC.LT.(NMATT-1))THEN
 163 :                    IIC=IC+2
 164 :                  ELSEIF(IC.LE.(NMATT))THEN
 165 :                    IIC=4+IC-NMATT
 166 :                  ELSE
 167 :                  ENDIF
 168 : C
 169 :                  IF(MELVAL.NE.0)THEN
 170 :                     IF(TYVAL(IC)(1:8).NE.'POINTEUR')THEN
 171 :                        IBMN=MIN(IB,VELCHE(/2))
 172 :                       IGMN=MIN(IGAU,VELCHE(/1))
 173 :                        XMAT(IIC)=VELCHE(IGMN,IBMN)
 174 :                     ELSE
 175 :                       IBMN=MIN(IB,IELCHE(/2))
 176 :                      IGMN=MIN(IGAU,IELCHE(/1))
 177 :                       XMAT(IIC)=IELCHE(IGMN,IBMN)
 178 :                     ENDIF
 179 :                  ELSE
 180 :                     XMAT(IIC)=0.D0
 181 :                     IF(TYVAL(IC)(1:8).EQ.'POINTEUR') THEN
 182 :                        XMAT(IIC)=0.D0
 183 :                     END IF
 184 :                  ENDIF
 185 :            END DO
 186 : *
 187 : *     ON RECUPERE LES CARACTERISTIQUES GEOMETRIQUES
 188 : *
 189 :            MPTVAL=IVACAR
 190 :            DO IC=1,NCARR
 191 :               MELVAL=IVAL(IC)
 192 : * si c'est une caracteristique facultative non remplie melval vaut 0
 193 :               if (melval.ne.0) then
 194 :               IBMN=MIN(IB,VELCHE(/2))
 195 :               IGMN=MIN(IGAU,VELCHE(/1))
 196 :               XCAR(IC)=VELCHE(IGMN,IBMN)
 197 :               endif
 198 :            END DO
 199 : *
 200 : *---------------------------------------------------------------------
 201 : *
 202 : *                  ECOULEMENT SELON LES MODELES
 203 : *
 204 : *---------------------------------------------------------------------
 205 : *
 206 :            IF(INFIBR.EQ.0)THEN
 207 : C
 208 : C      MODELE ELASTIQUE LINEAIRE (EXEMPLE)
 209 : C
 209 :              CALL FIBELA(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 210 : C
 211 :            ELSEIF(INFIBR.EQ.1)THEN
 212 : C
 213 : C      MODELE BETON_UNI
 214 : C
 215 : C
 216 :            IF (XMAT(14).LT.0.D0) THEN
 217 : *             write(6,*) ' fcoul2 appel fibeto'
 217 :              CALL FIBETO(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 218 :            ELSE
 219 : *             write(6,*) ' fcoul2 appel fibet2'
 219 :              CALL FIBET2(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 220 :            ENDIF
 221 : C
 222 :              IF (EPSUP .LT. VARF(1)) EPSUP=VARF(1)
 223 :              IF (EPINF .GT. VARF(1)) EPINF=VARF(1)
 224 : C
 225 :            ELSEIF(INFIBR.EQ.2)THEN
 226 : C
 227 : C      MODELE ACIER_UNI
 228 : C
 228 :              CALL FIBSTE(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 229 : C+PP
 230 :              IST_TOT=IST_TOT+1
 231 : *              write (6,*) 'fcoul2 apres fibste ',varf(1)
 232 :              IF(INT(VARF(1)).EQ.1)IST_DES=IST_DES+1
 233 : C+PP
 234 : C
 235 :            ELSEIF(INFIBR.EQ.10)THEN
 236 : C
 237 : C      MODELE ACIER_ANCRAGE
 238 : C
 238 :              CALL FIBSTA(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 239 : C+PP
 240 :              IST_TOT=IST_TOT+1
 241 : C             write (6,*) 'fcoul2 apres fibsta ',varf(1)
 242 :              IF(INT(VARF(1)).EQ.1)IST_DES=IST_DES+1
 243 : C+PP
 244 : C
 245 :            ELSEIF(INFIBR.EQ.3)THEN
 246 : C
 247 : C      MODELE MAZARS_FIB
 248 : C
 248 :              CALL FIBMAZ(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 249 : C
 250 :            ELSEIF(INFIBR.EQ.11)THEN
 251 : C
 252 : C      MODELE CLB_UNI
 253 : C
 253 :              CALL LABORD(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 254 : C
 255 : C
 256 :            ELSEIF(INFIBR.EQ.4)THEN
 257 : C
 258 : C      MODELE FRAGILE_UNI
 259 : C
 259 :              CALL FIBFRA(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 260 : C
 261 :            ELSEIF(INFIBR.EQ.5)THEN
 262 : C
 263 : C      MODELE BETON_BAEL
 264 : C
 264 :              CALL FIBAEL(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 265 : C
 266 :              IF (EPSUP .LT. VARF(2)) EPSUP=VARF(2)
 267 :              IF (EPINF .GT. VARF(2)) EPINF=VARF(2)
 268 : C
 269 :            ELSEIF(INFIBR.EQ.6)THEN
 270 : C
 271 : C      MODELE PARFAIT_UNI
 272 : C
 272 :              CALL FIBPAR(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 273 : C
 274 :            ELSEIF(INFIBR.EQ.9)THEN
 275 : C
 276 : C      MODELE PARFAIT_ANCRAGE
 277 : C
 277 :              CALL FIBPAA(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 278 :              
 279 : C
 280 :            ELSEIF(INFIBR.EQ.12)THEN 
 281 : C 
 282 : C      MODELE INTIMP (CHOIX SELON LE TYPE DE CALAGE) 
 283 : C 
 284 :  
 285 :              IF (XMAT(18).EQ.0.D0) THEN 
 285 :                 CALL INTIMP(XMAT,DEPS,SIG0,VAR0,SIGF,VARF) 
 286 :              ELSEIF (XMAT(18).EQ.1.D0) THEN 
 286 :                 CALL INTFIC(XMAT,DEPS,SIG0,VAR0,SIGF,VARF) 
 287 :              ELSEIF (XMAT(18).EQ.2.D0) THEN 
 287 :                 CALL OUGLFI(XMAT,DEPS,SIG0,VAR0,SIGF,VARF) 
 288 :              ENDIF   
 289 : 
 290 : C +BR
 291 :                  ELSEIF(INFIBR.EQ.13)THEN 
 292 : C 
 293 : C      MODELE RICBET_UNI 
 294 : C 
 295 : 
 296 :             IF (XMAT(16).EQ.1) THEN
 296 :                CALL RICBETF1(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 297 :             ELSEIF (XMAT(16).EQ.2) THEN
 297 :                CALL RICBETF2(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 298 :             ENDIF 
 299 :             
 300 : 
 301 : C -BR                    
 302 : 
 303 :            ELSEIF(INFIBR.EQ.8)THEN
 304 : C
 305 : C      MODELE CISAIL_NL
 306 : C
 307 :                 IPOS1=1
 307 :                 CALL COTRAE(WWRK0,WRK2,12,IPOS1,0, NPOINT,KERRE)
 308 :                 NTRAP=NPOINT/2
 309 :                 IPOS2=IPOS1+NPOINT
 309 :                 CALL COTRAE(WWRK0,WRK2,13,IPOS2,0, NPOINT,KERRE)
 310 :                 NTRAN=NPOINT/2
 311 :                 IF(KERRE.EQ.0) THEN
 312 : *                  write(6,*) ' fcoul2 appel fibeta'
 312 :                    CALL FIBETA(XMAT,XCAR,SIG0,VAR0,SIGF,VARF,DEPS,
 313 :      .                         WRK2,NTRAP,NTRAN,KERRE)
 314 :                 END IF
 315 : C
 316 :            ELSEIF(INFIBR.EQ.7)THEN
 317 : C
 318 : C      MODELE STRUT_UNI
 319 : C
 320 : C            XKEPM = -1.
 321 :             XEULT = XMAT(4+20)
 322 : C
 323 :             IF (NSTRS2.EQ.3) THEN
 324 :               VARF(30)=VAR0(30)+DEPSI(3)
 325 :             ELSE
 326 :               VARF(30)=VAR0(30)+DEPSI(6)
 327 :             ENDIF
 328 : C--------------------------------------------------------
 329 : C            EPSUP - Maximum compression strain
 330 : C            EPINF - Maximum tensile strain
 331 : C--------------------------------------------------------
 332 : C             EPS11=(EPSUP+(DABS(XKEPM)-1.D0)*EPINF)/DABS(XKEPM)
 333 : C            EPS22=((DABS(XKEPM)-1.D0)*EPSUP+EPINF)/DABS(XKEPM)
 334 : C
 335 : C             IF (VARF(30) .GE. 0.D0) THEN
 336 : C                VARF(28)=EPS22
 337 : C                VARF(29)=EPS11
 338 : C             ELSE
 339 : C                VARF(28)=EPS11
 340 : C                VARF(29)=EPS22
 341 : C             ENDIF
 342 : C
 343 : C              EPS11 = VAR0(28)+DEPSI(1)
 344 : C
 345 :              EPS11 = 0.5D0 * (EPSUP +EPINF)
 346 :              EPS22 = EPS11
 347 :              VARF(28)= EPS11
 348 :              VARF(29)= EPS11
 349 : C
 350 :              VARF(34)=VAR0(34)
 351 :              VARF(35)=VAR0(35)
 352 : *--------------------------------------------------------
 353 : *            CHECK IF THE SHEAR DEFORMATION CHANGED SIGN
 354 : *--------------------------------------------------------
 355 :              SHEXY=VAR0(25)+DEPS(2)
 356 : C
 357 :              IF (SHEXY .GE. 0.0D0) THEN
 358 :                 KFAC1=28
 359 :                 KFAC2=34
 360 :              ELSE
 361 :                 KFAC1=29
 362 :                 KFAC2=35
 363 :              ENDIF
 364 : *
 365 : *--------------------------------------------------------
 366 : *            CORRECT THE MAXIMUM ALLOWED AXIAL DEFORMATION
 367 : *--------------------------------------------------------
 368 : *            FREEZE THE AVERAGE AXIAL STRAIN WHEN
 369 : *            SHEAR STRAIN CHANGES SIGN
 370 : *--------------------------------------------------------
 371 :              IF (((SHEXY*VAR0(25)) .LE. 0.0D0) .AND.
 372 :      .                  (VAR0(25)  .NE. 0.0D0)) THEN
 373 :                 IF ((VARF(KFAC1) .GT. 0.0D0) .AND.
 374 :      .              (VAR0(KFAC1) .GT. 0.0D0)) THEN
 375 :                    FACPR=VAR0(25)/DEPS(2)
 376 : 
 377 :                    VARF(KFAC1)=FACPR*(VAR0(KFAC1)-VARF(KFAC1))+
 378 :      .                                            VAR0(KFAC1)
 379 :                    VARF(KFAC2)=VARF(KFAC1)
 380 :                 ENDIF
 381 :              ENDIF
 382 : *--------------------------------------------------------
 383 : *            CHECK IF THE AXIAL DEFORMATION IS BELOW THE LIMIT
 384 : *--------------------------------------------------------
 385 :             IF (VARF(28) .LT. VAR0(28)) THEN
 386 :                 IF (VARF(28) .LT. VAR0(34)) THEN
 387 :                    IF (VARF(34) .GT. 0.0D0) THEN
 388 :                       VARF(34)=VAR0(34)
 389 :                       VARF(28)=VAR0(34)
 390 :                    ENDIF
 391 :                 ENDIF
 392 :              ENDIF
 393 : 
 394 :              IF (VARF(29) .LT. VAR0(29)) THEN
 395 :                 IF (VARF(29) .LT. VAR0(35)) THEN
 396 :                    IF (VARF(35) .GT. 0.0D0) THEN
 397 :                       VARF(35)=VAR0(35)
 398 :                       VARF(29)=VAR0(35)
 399 :                    ENDIF
 400 :                 ENDIF
 401 :              ENDIF
 402 : C
 403 : C             IF  (XEULT.GE. 0.D0) THEN
 404 : *--------------------------------------------------------
 405 : *               FREEZE THE AVERAGE AXIAL STRAIN WHEN
 406 : *               THERE ARE CRACKS OPENED
 407 : *--------------------------------------------------------
 408 : C                VARF(34)=VAR0(34)
 409 : C                VARF(35)=VAR0(35)
 410 : C
 411 : C                IF (ETIQE .EQ. 0.D0) THEN
 412 : C                   IF (VARF(34) .LT. VAR0(28)) VARF(34)=VAR0(28)
 413 : C                   IF (VARF(35) .LT. VAR0(29)) VARF(35)=VAR0(29)
 414 : C                ENDIF
 415 : C
 416 : C                IF ((EPS22 .LT. VARF(34)) .AND.
 417 : C     .              (VARF(34) .GT. 0.D0)) THEN
 418 : C                   EPS22=VARF(34)
 419 : C                   EPS11=VARF(35)
 420 : C                ENDIF
 421 : C
 422 : C                VARF(28)=EPS22
 423 : C                VARF(29)=EPS11
 424 : C             ENDIF
 425 : *--------------------------------------------------------
 426 : *            DAMAG - Maximum compression strain / Ultimate strain
 427 : *--------------------------------------------------------
 428 :              DAMAG = 0.D0
 429 :              IF (DABS(XEULT) .LE. 1.0D0) THEN
 430 :               IF (XEULT.GE.0.D0) THEN
 431 : C
 432 : C              DAMAG -  Position of the neutral axis
 433 : C
 434 :                 IF ((EPINF*EPSUP).LT.0.0D0) THEN
 435 :                   DAMGG = EPSUP/( EPSUP - EPINF)
 436 :                 ELSE
 437 :                   DAMGG =0.D0
 438 :                 ENDIF
 439 :               ELSE
 440 : C
 441 : C            DAMAG - Maximum compression strain / Ultimate strain
 442 : C
 443 :                 DAMGG=-1.0D0*EPINF/ABS(XEULT)
 444 : c
 445 :               ENDIF
 446 : C
 447 :                VARF(32)=VAR0(32)
 448 :                VARF(33)=VAR0(33)
 449 : C
 450 :                IF (SHEXY .GT. 0.0D0) THEN
 451 :                   IF (DAMGG .GE. VARF(32)) VARF(32)=DAMGG
 452 :                ELSE
 453 :                   IF (DAMGG .GE. VARF(33)) VARF(33)=DAMGG
 454 :                ENDIF
 455 : C
 456 :              ELSE
 457 : *--------------------------------------------------------
 458 : *               DO NOT CONSIDER DAMAGE IN THE STRUTS
 459 : *--------------------------------------------------------
 460 :                VARF(32)=0.0D0
 461 :                VARF(33)=0.0D0
 462 :              ENDIF
 463 : C
 464 : 2001    CONTINUE
 465 :            IF (NSTRS2.EQ.3) THEN
 466 :               DEPSB(1) = DEPS(1)
 467 :               DEPSB(2) = DEPS(2)
 468 :               DEPSB(3) = 0.D0
 469 :               SIG0B(1) = SIG0(1)
 470 :               SIG0B(2) = SIG0(2)
 471 :               SIG0B(3) = 0.D0
 471 :               CALL FIBSTR(XMAT,DEPSB,SIG0B,VAR0,SIGFB,VARF)
 472 :               SIGF(1) = SIGFB(1)
 473 :               SIGF(2) = SIGFB(2)
 474 :            ELSE
 474 :              CALL FIBSTR(XMAT,DEPS,SIG0,VAR0,SIGF,VARF)
 475 :            ENDIF
 476 : C
 477 :            ENDIF
 478 : C+PPf
 479 : C
 480 : C     TRAITEMENT PARTICULIER DES ELEMENTS SEGS(166) ET POJS(167)
 481 : C
 482 : C
 483 :            IF(MELE.EQ.167)THEN
 484 : C+DC             DJAC=XCAR(NCARR)
 485 :              IF (NSTRS2.EQ.3) THEN
 486 :                DJAC=XCAR(2)
 487 :              ELSE
 488 :                DJAC=XCAR(3)
 489 :              ENDIF
 490 : C
 491 :            ELSEIF(MELE.EQ.166)THEN
 491 :              CALL JACOBI(XE,SHP,1,NBNN,DJAC)
 492 : C+DC             DJAC=DJAC*XCAR(NCARR)
 493 :              IF (NSTRS2.EQ.3) THEN
 494 :                DJAC=DJAC*XCAR(2)
 495 :              ELSE
 496 :                DJAC=DJAC*XCAR(3)
 497 :              ENDIF           
 498 :            ELSE
 498 :              CALL JACOBI(XE,SHP,2,NBNN,DJAC)
 499 :            ENDIF
 500 : C+PPf
 501 : C
 502 : C     CONTRIBUTION A LA CONTRAINTE DE LA SECTION
 503 : C
 504 :            PGAUSS=POIGAU(IGAU)*ABS(DJAC)  
 505 :            IF (NSTRS2.EQ.3) THEN
 506 :              SIGMA(1)=SIGMA(1)+SIGF(1)*PGAUSS
 507 :              SIGMA(2)=SIGMA(2)+XCAR(1)*SIGF(2)*PGAUSS
 508 :              SIGMA(3)=SIGMA(3)-YY*SIGF(1)*PGAUSS
 509 :            ELSE
 510 :              SIGMA(1)=SIGMA(1)+SIGF(1)*PGAUSS
 511 :              SIGMA(2)=SIGMA(2)+XCAR(1)*SIGF(2)*PGAUSS
 512 :              SIGMA(3)=SIGMA(3)+XCAR(2)*SIGF(3)*PGAUSS
 513 :              SIGMA(4)=SIGMA(4)+
 514 :      $              (-ZZ*XCAR(1)*SIGF(2)+YY*XCAR(2)*SIGF(3))*PGAUSS
 515 :              SIGMA(5)=SIGMA(5)+ZZ*SIGF(1)*PGAUSS
 516 :              SIGMA(6)=SIGMA(6)-YY*SIGF(1)*PGAUSS
 517 :            ENDIF
 518 : C
 519 : C     REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES A LA FIN
 520 : C
 521 :             MPTVAL=IVASTF
 522 :             DO 1116 IC=1,NSTRS
 523 :                MELVAL=IVAL(IC)
 524 :                VELCHE(IGAU,IB)=SIGF(IC)
 525 : 1116        CONTINUE
 526 : C
 527 : C     ET LES VARIABLES INTERNES FINALES
 528 : C
 529 :             MPTVAL=IVARIF
 530 :             DO 1117 IC=1,NVARI
 531 :                MELVAL=IVAL(IC)
 532 :                VELCHE(IGAU,IB)=VARF(IC)
 533 : 1117        CONTINUE
 534 : C
 535 : C    FIN DE LA BOUCLE SUR LES POINTS DE GAUSS
 536 : C
 537 : 1100     CONTINUE
 538 : C
 539 : C     FIN DE LA BOUCLE SUR LES ELEMENTS
 540 : C
 541 : 1000  CONTINUE
 542 : C+PP
 543 :       IF(IST_DES.NE.0)THEN
 544 :         WRITE(IOIMP,*)'FCOUL2:',IST_DES,' steel fibres out of ',
 545 :      >                IST_TOT,' are destroyed on the current zone'
 546 :       ENDIF
 547 : C+PP
 548 : *
 549 : C*    SEGDES,MINTE           <- ACTIF EN E/S (NON MODIFIE)
 550 :       SEGSUP WRK2
 551 :       SEGSUP WWRK0,WWRK1,WWRK2
 552 : *
 553 :       RETURN
 554 :       END
 555 : 
 556 :  
 557 :  
 558 :  
 559 :  
 560 :  
 561 :  

© Cast3M 2003 - All rights reserved.
Disclaimer