mocu3d
C MOCU3D SOURCE CB215821 24/04/12 21:16:45 11897 C MOCU3D SOURCE DC 98/06/03 21:45:21 3202 C MOCU3D SOURCE GOUNAND 97/10/13 22:21:06 2872 . IPEPAX,IPMOMY,IPMOMZ,TOL,mtable,zveri) ********************************************************************** * * OPERATEUR MOCU3D (MOment/CUrvature) * * IPCURY : Histoire en courbure * IPCURZ : Histoire en courbure * IPAXIA : Histoire en effort normal * IPMODL : Modele * IPCAR : Materiau * IPEPAX : Histoire allongement axial * IPMOMY : Histoire en moment * 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,boolre,zveri character*8 char1,charre C -INC PPARAM -INC CCOPTIO -INC SMLREEL -INC CCGEOME -INC CCREEL -INC SMMODEL -INC SMCHAML -INC SMTABLE POINTEUR IPCURY.MLREEL,IPCURZ.MLREEL,IPAXIA.MLREEL POINTEUR IPMOMY.MLREEL,IPMOMZ.MLREEL,IPEPAX.MLREEL C NMAXIT = 50 NSTRS2 = 6 II = 0 XVA = 0.D0 BOOL =.FALSE. IOB = 0 IRE = 0 XVARE = 0.D0 C * ICOUL1=IDCOUL C C------- NSTEPS -- C SEGACT,IPCURY,IPCURZ,IPAXIA SEGDES,IPCURY,IPCURZ,IPAXIA RETURN ENDIF SEGDES,IPCURY,IPCURZ,IPAXIA RETURN ENDIF c if (zveri) then m=3 segini mtable itab=mtable m=nsteps+1 segini mtab1 itab1=mtab1 c $ 'TABLE ',ire,xvare,char1,boolre,itab1) segini mtab2 $ bool,iob, $ '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,6 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 JG=NSTEPS SEGINI,IPMOMY,IPMOMZ,IPEPAX C C INITIAL STIFNESS C XKFXEX=CRIGI(1) XKFXCY=CRIGI(3) XKFXCZ=-CRIGI(2) C C NULL DEFORMATION INCREMENT C DEPSI(2)=0.D0 DEPSI(3)=0.D0 DEPSI(4)=0.D0 C YAUX0=0.D0 ZAUX0=0.D0 ZAXI0=0.D0 DEFOA=0.D0 C C-------- LOOP --------------- C DO 2000 I=1,NSTEPS C DYCURV=YAUX1-YAUX0 DZCURV=ZAUX1-ZAUX0 DFAXIA=ZAXI1-ZAXI0 C SIGPRE=ZAXI0 XKFXEX=CRIGI(1) DSITER=(DFAXIA-XKFXCY*DYCURV-XKFXCZ*DZCURV)/XKFXEX SZERO =DSITER C DEPSI(5)=DYCURV DEPSI(6)=DZCURV C DO 5000 NITER=1,NMAXIT DEPSI(1)=SZERO C $ SIGMA,IPSIGF,IPVARF,IRETO,NSTRS2) IF(IRETO.EQ.0) THEN SEGSUP,IPMOMY,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,IPMOMY,IPMOMZ,IPEPAX SEGDES,IPCURY,IPCURZ,IPAXIA RETURN C ZAUX0=ZAUX1 YAUX0=YAUX1 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,IPCURY,IPCURZ,IPAXIA C SEGDES,IPMOMY,IPMOMZ,IPEPAX C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales