mocu2d
C MOCU2D SOURCE CB215821 24/04/12 21:16:44 11897 . ,TOL,mtable,zveri) ********************************************************************** * * OPERATEUR MOCU2D (MOment/CUrvature) * * IPCURZ : Histoire en courbure * IPAXIA : Histoire en effort normal * IPMODL : Modele * IPCAR : Materiau * IPEPAX : Histoire allongement axial * IPMOMZ : Histoire en moment * TOL: Tolerance * ********************************************************************** * D'APRES MOCUR DC 98 ********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C logical bool,zveri character*1 char1 C -INC PPARAM -INC CCOPTIO -INC SMLREEL -INC CCGEOME -INC CCREEL -INC SMMODEL -INC SMCHAML -INC SMTABLE POINTEUR IPCURZ.MLREEL,IPAXIA.MLREEL POINTEUR IPMOMZ.MLREEL,IPEPAX.MLREEL C NMAXIT = 50 NSTRS2 = 3 II = 0 XVA = 0.D0 BOOL =.FALSE. IOB = 0 C * ICOUL1=IDCOUL C C------- NSTEPS -- C SEGACT,IPCURZ,IPAXIA SEGDES,IPCURZ,IPAXIA RETURN ENDIF C if (zveri) then m=3 segini mtable m=nsteps + 1 segini mtab1 $ 'TABLE ',ii,xva,char1,bool,mtab1) segini mtab2 $ ,'TABLE ',ii,xva,char1,bool,mtab2) segini mtab3 $ bool,iob, $ 'TABLE ',ii,xva,char1,bool,mtab3) segdes mtable endif c C-------- INITIALIZING --------------- C DO IE1=1,3 END DO SZERO=0.0D0 if (zveri) then $ 'MCHAML',ii,xva,char1,bool,ipsig0) $ 'MCHAML',ii,xva,char1,bool,ipvar0) $ 'FLOTTANT',ii,szero,char1,bool,iob) endif C JG=NSTEPS SEGINI,IPMOMZ,IPEPAX C C INITIAL STIFNESS C XKFXEX=CRIGI(1) XKFXCZ=-CRIGI(2) C C NULL DEFORMATION INCREMENT C DEPSI(2)=0.D0 C ZAUX0=0.D0 ZAXI0=0.D0 DEFOA=0.D0 C C-------- LOOP --------------- C DO 2000 I=1,NSTEPS C DZCURV=ZAUX1-ZAUX0 DFAXIA=ZAXI1-ZAXI0 C SIGPRE=ZAXI0 XKFXEX=CRIGI(1) DSITER=(DFAXIA-XKFXCZ*DZCURV)/XKFXEX SZERO =DSITER C DEPSI(3)=DZCURV C DO 5000 NITER=1,NMAXIT DEPSI(1)=SZERO C ** write(6,*) 'MOCU2D definition incorrecte de time0 et timef' time0=0.D0 timef=0.D0 $ SIGMA,IPSIGF,IPVARF,IRETO,NSTRS2) IF(IRETO.EQ.0) THEN SEGSUP,IPMOMZ,IPEPAX RETURN ENDIF C C IF(IIMPI.EQ.1789)THEN write(IOIMP,999)I,NITER,XKFXEX,DSITET $ 1pd12.5,' DSITET=',1pd12.5) ENDIF C IF(ABS(DSITET).LT.TOL)GOTO 5010 C C on tente une approximation quasi-newton apres la prediction ... C SZERO=SZERO+DSITER C C 5000 CONTINUE C INTERR(1)=NMAXIT SEGSUP,IPMOMZ,IPEPAX SEGDES,IPCURZ,IPAXIA RETURN C ZAUX0=ZAUX1 DEFOA=DEFOA+SZERO C if (.not.zveri) then endif IPSIG0=IPSIGF IPVAR0=IPVARF c if (zveri) then $ 'MCHAML',ii,xva,char1,bool,ipsig0) $ 'MCHAML',ii,xva,char1,bool,ipvar0) $ 'FLOTTANT ',ii,DEFOA,char1,bool,iob) endif C C C 2000 CONTINUE C if (zveri) then segdes,mtab1,mtab2,mtab3 else endif SEGDES,IPCURZ,IPAXIA C SEGDES,IPMOMZ,IPEPAX C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales