C COML12 SOURCE CHAT 12/08/06 21:15:13 7479 SUBROUTINE COML12(iqmod,wrk52,wrk53,wrk54,IB,igau,wrk2, & mwrkxe,wrk3,wrk6,wrk7,wrk8,wrk9,wrk91,wr10,wr11, & iretou,wrk12,wrkgur,wkumat,wcreep,ecou,iecou,necou,xecou) *---------------------------------------------------------------- * lois locales pour la mecanique * decrites au point d integration *---------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC CCGEOME -INC SMMODEL -INC SMELEME -INC SMINTE -INC CCHAMP -INC SMCOORD * segment deroulant le mcheml -INC DECHE * SEGMENT WRK2 REAL*8 TRAC(LTRAC) ENDSEGMENT * SEGMENT MWRKXE REAL*8 XEL(3,NBNNbi) ENDSEGMENT * SEGMENT WRK3 REAL*8 WORK(LW),WORK2(LW2) ENDSEGMENT * SEGMENT WRK6 REAL*8 BB(NSTRS,NNVARI),R(NSTRS),XMU(NSTRS) REAL*8 S(NNVARI),QSI(NNVARI),DDR(NSTRS),BBS(NSTRS) REAL*8 SIGMA(NSTRS),SIGGD(NSTRS),XMULT(NSTRS),PROD(NSTRS) ENDSEGMENT * SEGMENT WRK7 REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB) ENDSEGMENT * SEGMENT WRK8 REAL*8 DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS),DDINV(NSTRS,NSTRS) REAL*8 DDINVp(NSTRS,NSTRS) ENDSEGMENT * SEGMENT WRK9 REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX) REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1) REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO) REAL*8 SIGY(NSIGY) INTEGER NKX(NNKX) ENDSEGMENT * SEGMENT WRK91 REAL*8 YOG1(NYOG1),YNU1(NYNU1),YALFT1(NYALFT1),YSMAX1(NYSMAX1) REAL*8 YN1(NYN1),YM1(NYM1),YKK1(NYKK1),YALF2(NYALF2) REAL*8 YBET2(NYBET2),YR1(NYR1),YA1(NYA1),YQ1(NYQ1),YRHO1(NYRHO1) REAL*8 SIGY1(NSIGY1) ENDSEGMENT * SEGMENT WR10 INTEGER IABLO1(NTABO1) REAL*8 TABLO2(NTABO2) ENDSEGMENT * SEGMENT WR11 INTEGER IABLO3(NTABO3) REAL*8 TABLO4(NTABO4) ENDSEGMENT * 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 SEGMENT WRK12 real*8 bbet1,bbet2,bbet3,bbet4,bbet5,bbet6,bbet7,bbet8,bbet9 real*8 bbet10,bbet11,bbet12,bbet13,bbet14,bbet15,bbet16,bbet17 real*8 bbet18,bbet19,bbet20,bbet21,bbet22,bbet23,bbet24,bbet25 real*8 bbet26,bbet27,bbet28,bbet29,bbet30,bbet31,bbet32,bbet33 real*8 bbet34,bbet35,bbet36,bbet37,bbet38,bbet39,bbet40,bbet41 real*8 bbet42,bbet43,bbet44,bbet45,bbet46,bbet47,bbet48,bbet49 real*8 bbet50,bbet51,bbet52,bbet53,bbet54,bbet55 integer ibet1,ibet2,ibet3,ibet4,ibet5,ibet6,ibet7,ibet8 integer ibet9,ibet10,ibet11,ibet12,ibet13,ibet14,ibet15,ibet16 ENDSEGMENT segment wrkgur real*8 wgur1,wgur2,wgur3,wgur4,wgur5,wgur6,wgur7 real*8 wgur8,wgur9,wgur10,wgur11,wgur12(6) real*8 wgur13(7), wgur14 real*8 wgur15,wgur16,wgur17 endsegment C C Segment de travail pour la loi 'NON_LINEAIRE' 'UTILISATEUR' appelant C l'integrateur externe specifique UMAT C SEGMENT WKUMAT C Entrees/sorties de la routine UMAT REAL*8 DDSDDE(NTENS,NTENS), SSE, SPD, SCD, & RPL, DDSDDT(NTENS), DRPLDE(NTENS), DRPLDT, & TIME(2), DTIME, TEMP, DTEMP, DPRED(NPRED), & DROT(3,3), PNEWDT, DFGRD0(3,3), DFGRD1(3,3) CHARACTER*16 CMNAME INTEGER NDI, NSHR, NSTATV, NPROPS, & LAYER, KSPT, KSTEP, KINC C Variables de travail LOGICAL LTEMP, LPRED, LVARI, LDFGRD INTEGER NSIG0, NPARE0, NGRAD0 ENDSEGMENT C C Segment de travail pour les lois 'VISCO_EXTERNE' C SEGMENT WCREEP C Entrees/sorties constantes de la routine CREEP REAL*8 SERD CHARACTER*16 CMNAMC INTEGER LEXIMP, NSTTVC, LAYERC, KSPTC C Entrees/sorties de la routine CREEP pouvant varier REAL*8 STV(NSTV), STV1(NSTV), STVP1(NSTV), & STVP2(NSTV), STV12(NSTV), STVP3(NSTV), & STVP4(NSTV), STV13(NSTV), STVF(NSTV), & TMP12, TMP, TMP32, & DTMP12, DTMP, & PRD12(NPRD), PRD(NPRD), PRD32(NPRD), & DPRD12(NPRD), DPRD(NPRD) INTEGER KSTEPC C Autres indicateurs et variables de travail LOGICAL LTMP, LPRD, LSTV INTEGER IVIEX, NPAREC REAL*8 dTMPdt, dPRDdt(NPRD) ENDSEGMENT * SEGMENT ENDO0 REAL*8 ENDO(LENDO),RAPP(LENDO) ENDSEGMENT * DIMENSION NWA(9) DIMENSION SIG01(8),VAR01(37) DIMENSION EPSFLU(8) SEGMENT ECOU REAL*8 ecow00,ecow0, C REAL*8 TEST, ALFAH, 1 ecow1,ecow2,ecow3(6),ecow4(9),ecow5(6), C 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6), 2 ecow6(12),ecow7(6),ecow8(6),ecow9(6),ecow10(6),ecow11(6), 2 ecow12(6), C 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6), 1 ecow13(6),ecow14(6),ecow15(12),ecow16(3), C 1 DALPHA(6),EPSPLA(6),E(12),XINV(3), 2 ecow17(6),ecow18(6),ecow19,ecow20 C 2 SIPLAD(6),DSIGP0(6),TET,TETI ENDSEGMENT * * Segment NECOU utilisé dans ECOINC * SEGMENT NECOU INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO, . ITYP,IFOURB,IFLUAG, . ICINE,ITHER,IFLUPL,ICYCL,IBI, . JFLUAG,KFLUAG,LFLUAG, . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF ENDSEGMENT * * Segment IECOU: sert de fourre-tout pour les initialisations * d'entiers * SEGMENT IECOU INTEGER NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,NYALF1, . NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND,NSOM,NINV, . NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT,LTRAC,MFRBI, . IELE,NHRM,NBNNBI,NBELMB,ICARA,LW2BI,NDEF,NSTRSS, . MFR1,NBGMAT,NELMAT,MSOUPA,NUMAT1,LENDO,NBBB,NNVARI, . KERR1,MELEMB,NYOG1,NYNU1,NYALFT1,NYSMAX1,NYN1,NYM1, . NYKK1,NYALF2,NYBET2,NYR1,NYA1,NYQ1,NYRHO1,NSIGY1 ENDSEGMENT * * Segment XECOU: sert de fourre-tout pour les initialisations * de réels * SEGMENT XECOU REAL*8 DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00 ENDSEGMENT C----------------------------------------------------------------------- C c moterr(1:6) = 'COML12 ' c moterr(7:15) = 'element ' c interr(1) = ib c interr(2) = igau c call erreur(-329) * write(6,*) ' entrée dans coml12 iecou ', iecou imodel = iqmod c c traitement du modele c NBPGAU = nbgs NVARI = NVART TETA1 = ture0(1) TETA2 = turef(1) SUCC1 = -1.D35 SUCC2 = -1.D35 nexo = exova0(/1) if (nexo.gt.0) then do 1296 inex = 1,nexo if ((nomexo(inex).eq.'SUCC').and.(conexo(inex).eq.CONM)) then SUCC1 = exova0(inex) SUCC2 = exova1(inex) goto 1295 endif 1296 continue endif 1295 continue *---------------------- traitement des modeles IF (INPLAS.EQ.144) THEN * modele RICRAG if(ifour.ne.2) then CALL RIC2NL(wrk52,wrk53,wrk54,nvari,iecou) else CALL RIC3NL(wrk52,wrk53,wrk54,nvari,iecou) endif * modele INTIMP ELSE IF (INPLAS.EQ.145 .AND. mfrbi.eq.7) THEN nstrbi=nstrss icarbi=icara CALL CBIFLE(wrk52,wrk53,wrk54,NSTRbi,NVARI,ICARbi) nstrss=nstrbi icara=icarbi c modele RICJOI ELSE IF (INPLAS.EQ.146) then * write(6,*) ' ifour ',ifour * if(ib+igau.eq.2) write(6,*)'sig0', (SIG0 (iou),iou=1,nstrs) * if(ib+igau.eq.2) write(6,*)'depst', (DEPST (iou),iou=1,nstrs) if(ifour.ne.2) then CALL RICJ2(IB,IGAU,NSTRS,SIG0,EPIN0,VAR0,NVARI,DEPST,IFOURB, & XMAT,NMATT,ivalma,DD,SIGF,DEFP,VARF,KERRE) else CALL RICJ3(IB,IGAU,NSTRS,SIG0,EPIN0,VAR0,NVARI,DEPST,IFOURB, & TETA1,TETA2, & XMAT,NMATT,ivalma,DD,SIGF,DEFP,VARF,KERRE) endif * if(ib+igau.eq.2) write(6,*)'SIGF', (SIGF(iou),iou=1,nstrs) C +BR ELSEIF(INPLAS.EQ.157) then C Modele GLRC_DM CALL LCGLDM(XMAT,VAR0,VARF,SIG0,SIGF,DEPST,XCARB) RETURN ELSEIF(INPLAS.EQ.158) then C Modele RICBET CALL RICBET(wrk52,wrk53,wrk54,nvari,iecou) RETURN ELSEIF(INPLAS.EQ.159) then C Modele RICCOQ CALL ELOCRAK1(wrk52,wrk53,wrk54,nvari,iecou) RETURN C -BR C C Ecoulement pour le modele de Symonds & Cowper ELSE IF (INPLAS.EQ.153.OR.INPLAS.EQ.154) then c write(6,*) ' dans coml12 envoi dans coulesyc',inplas,dt * C on recupere la courbe de traction C nccor=ncourb call CCOTRA(WRK52,WRK2,NCCOR,WRK53) ncourb= nccor C C meme maniere de proceder que dans ecoin0 nccor=ncourb iforb=ifourb CALL SYCO12(wrk52,wrk53,wrk54,wrk2,wrk3,IB,IGAU, & NBPGAU,NCcor,IFORB,iecou,xecou) C ncourb=nccor ifourb=iforb ELSE write(ioimp,*) 'Branchement incorrect dans COML12' CALL ERREUR(5) ENDIF RETURN end