C CMAXOA    SOURCE    OF166741  25/02/20    21:15:32     12165          
      SUBROUTINE CMAXOA(wrk52,wrk53,wrk54,WR12,IB,IGAU,NBGMAT,
     &                   NELMAT,NWA,NCHAIN,EPSFLU)
*
*      MODELE MAXOTT  : RECUPERATION DES INFORMATIONS
*
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*

-INC PPARAM
-INC CCOPTIO
-INC SMEVOLL
-INC SMLREEL
-INC CCHAMP
-INC DECHE
*
      SEGMENT WR12
        REAL*8  EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
        REAL*8  EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
        REAL*8  EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
        REAL*8  SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
        REAL*8  SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
        REAL*8  SM8(NSTRS)
      ENDSEGMENT

      DIMENSION NWA(9),IPX(9),IPY(9)
      DIMENSION EPSFLU(8)

*
*---------------------------------------
* donnees materielles de type evolution
*---------------------------------------

             DO JC=1,9
               NWA(JC)=0
               IPX(JC)=0
               IPY(JC)=0
             END DO
* offsets pour caracteristiques de type 'evolution'
*
* deformations planes / axisymetrique
*
      IF ((IFOMOD.EQ.-1.AND.IFOUR.NE.-2).OR.
     &        (IFOMOD.EQ.0.OR.IFOMOD.EQ.1)) THEN
        IMAXOBL = 10
        IMAXFAC = 51
*
* contraintes planes / 3D coques minces
*
      ELSE IF((IFOMOD.EQ.-1.AND.IFOUR.EQ.-2).OR.
     &        (IFOMOD.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
        IMAXOBL = 10
        IMAXFAC = 46
*
* tridimensionnelle massive
*
      ELSE
        IMAXOBL = 15
        IMAXFAC = 57
      ENDIF
*
*     em0
*

      MEVOLL=NINT(XMAT(IMAXOBL))
      SEGACT MEVOLL
      KEVOLL=IEVOLL(1)
      SEGACT KEVOLL
      MLREEL=IPROGX
      IPX(1)=IPROGX
      IPY(1)=IPROGY
      SEGACT MLREEL
      NWA(1)=PROG(/1)
      SEGDES KEVOLL*NOMOD
      SEGDES MEVOLL*NOMOD

*
*     em1 a em4
*
      KED=IMAXOBL+1
      DO JC=2,5
        MEVOLL=NINT(XMAT(KED))
        KED=KED+2
        SEGACT MEVOLL
        KEVOLL=IEVOLL(1)
        SEGACT KEVOLL
        MLREEL=IPROGX
        IPX(JC)=IPROGX
        IPY(JC)=IPROGY
        SEGACT MLREEL
        NWA(JC)=PROG(/1)
        SEGDES KEVOLL*NOMOD
        SEGDES MEVOLL*NOMOD
      END DO

*
*       em5 a em8
*
      NCHAIN=5
      KED=IMAXFAC
      DO JC=6,9
        MEVOLL=NINT(XMAT(KED))
        KED=KED+2
        IF(MEVOLL.GT.0) THEN
          SEGACT MEVOLL
          KEVOLL=IEVOLL(1)
          SEGACT KEVOLL
          MLREEL=IPROGX
          IPX(JC)=IPROGX
          IPY(JC)=IPROGY
          SEGACT MLREEL
          NWA(JC)=PROG(/1)
          NCHAIN=NCHAIN+1
          SEGDES KEVOLL*NOMOD
          SEGDES MEVOLL*NOMOD
        ENDIF
      END DO


*------------------------------------
*     creation du segment de travail
*------------------------------------
             IF (WR12.NE. 0) SEGINI WR12
*
*     recuperation des caracteristiques
*     materielles et des variables internes
*     D'abord les composantes obligatoires
*
* tridimensionnelle massive
*
             IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN
               MXVREE = 22
*
* deformations planes / axisymetrique
*
             ELSE IF(IFOUR.EQ.-1.OR.IFOUR.EQ.-3
     &         .OR.IFOUR.EQ.0.OR.IFOUR.EQ.1) THEN
               MXVREE = 17
*
* contraintes planes / 3D coques minces
*
             ELSE
               MXVREE = 14
             ENDIF
*
             DO JC=0,5
               IF(JC.NE.0) THEN
                 MLREEL=IPX(JC)
                 MLREE1=IPY(JC)
                 SEGACT MLREE1
               ENDIF
               MLREE2=NINT(VAR0(JC+MXVREE))
               SEGACT MLREE2
               IF(JC.EQ.0) THEN
                 DO JD=1,NSTRS
                   EPSFLU(JD)=MLREE2.PROG(JD)
                 END DO
               ELSE IF(JC.EQ.1) THEN
                 DO JD=1,NWA(1)
                   EM0(1,JD)=PROG(JD)
                   EM0(2,JD)=MLREE1.PROG(JD)
                 END DO
                 DO JD=1,NSTRS
                   SM0(JD)=MLREE2.PROG(JD)
                 END DO
               ELSE IF(JC.EQ.2) THEN
                 DO JD=1,NWA(2)
                   EM1(1,JD)=PROG(JD)
                   EM1(2,JD)=MLREE1.PROG(JD)
                 END DO
                 DO JD=1,NSTRS
                   SM1(JD)=MLREE2.PROG(JD)
                 END DO
               ELSE IF(JC.EQ.3) THEN
                 DO JD=1,NWA(3)
                   EM2(1,JD)=PROG(JD)
                   EM2(2,JD)=MLREE1.PROG(JD)
                 END DO
                 DO JD=1,NSTRS
                   SM2(JD)=MLREE2.PROG(JD)
                 END DO
               ELSE IF(JC.EQ.4) THEN
                 DO JD=1,NWA(4)
                   EM3(1,JD)=PROG(JD)
                   EM3(2,JD)=MLREE1.PROG(JD)
                 END DO
                 DO JD=1,NSTRS
                   SM3(JD)=MLREE2.PROG(JD)
                 END DO
               ELSE IF(JC.EQ.5) THEN
                 DO JD=1,NWA(5)
                   EM4(1,JD)=PROG(JD)
                   EM4(2,JD)=MLREE1.PROG(JD)
                 END DO
                 DO JD=1,NSTRS
                   SM4(JD)=MLREE2.PROG(JD)
                 END DO
               ENDIF
             END DO
*
*       traitement des composantes facultatives
*
             DO JC=6,9
               IF(IPX(JC).NE.0) THEN
                 MLREEL=IPX(JC)
                 MLREE1=IPY(JC)
                 SEGACT MLREE1
                 MLREE2=NINT(VAR0(JC+MXVREE))
                 SEGACT MLREE2
                 IF(JC.EQ.6) THEN
                   DO JD=1,NWA(6)
                     EM5(1,JD)=PROG(JD)
                     EM5(2,JD)=MLREE1.PROG(JD)
                   END DO
                   DO JD=1,NSTRS
                     SM5(JD)=MLREE2.PROG(JD)
                   END DO
                 ELSE IF(JC.EQ.7) THEN
                   DO JD=1,NWA(7)
                     EM6(1,JD)=PROG(JD)
                     EM6(2,JD)=MLREE1.PROG(JD)
                   END DO
                   DO JD=1,NSTRS
                     SM6(JD)=MLREE2.PROG(JD)
                   END DO
                ELSE IF(JC.EQ.8) THEN
                   DO JD=1,NWA(8)
                     EM7(1,JD)=PROG(JD)
                     EM7(2,JD)=MLREE1.PROG(JD)
                   END DO
                   DO JD=1,NSTRS
                     SM7(JD)=MLREE2.PROG(JD)
                   END DO
                 ELSE IF(JC.EQ.9) THEN
                   DO JD=1,NWA(9)
                     EM8(1,JD)=PROG(JD)
                     EM8(2,JD)=MLREE1.PROG(JD)
                   END DO
                   DO JD=1,NSTRS
                     SM8(JD)=MLREE2.PROG(JD)
                   END DO
                 ENDIF
               ENDIF
             END DO

*
*      DESACTIVATION DES SEGMENTS PROG
*
            DO  10 JC=0,9
              IF (IPX(JC).EQ.0) GO TO 10
              IF (JC.NE.0) THEN
                MLREEL=IPX(JC)
                SEGDES MLREEL*NOMOD
                MLREE1=IPY(JC)
                SEGDES MLREE1*NOMOD
              ENDIF
              MLREE2=NINT(VAR0(JC+MXVREE))
              SEGDES MLREE2*NOMOD
  10        CONTINUE

*
      RETURN
      END

 
 
 
