clmodu
C CLMODU SOURCE CHAT 05/01/12 22:08:39 5004 . XLTRI,XLTTI,EPTTI,EPTRI,EPRSI, . ETI,EPPRFI,EPSPRI,JECROI,KOMPRI,JECHAI, . KERRE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C C*********************************************************************** C**************************** INITIALISATION *************************** C*********************************************************************** C RFE=1.D-8 RFS=YUNG*RFE EPPTI=EPTTI-XLTTI/YUNG EPSPRI=EPRSI IF(XLTRI.GT.0.D0.AND.RTI.LE.RFS) EPSPRI=EPTRI JECROI=0 KOMPRI=0 C IF(IIMPI.EQ.9) THEN WRITE(IOIMP,1001) YUNG,RTI WRITE(IOIMP,1002) CONTRI,OUVERI,DCONTI,DEPSTI WRITE(IOIMP,1003) XLTRI,XLTTI,EPTTI WRITE(IOIMP,1004) EPTRI,EPRSI,EPPTI 1001 FORMAT(2X,'YUNG =',1PE12.5,2X,'RTI =',1PE12.5) 1002 FORMAT(2X,'CONTRI=',1PE12.5,2X,'OUVERI=',1PE12.5,/, . 2X,'DCONTI=',1PE12.5,2X,'DEPSTI=',1PE12.5) 1003 FORMAT(2X,'XLTRI =',1PE12.5,2X,'XLTTI =',1PE12.5, . 2X,'EPTTI =',1PE12.5) 1004 FORMAT(2X,'EPTRI =',1PE12.5,2X,'EPRSI =',1PE12.5, . 2X,'EPPTI =',1PE12.5) ENDIF C C*********************************************************************** C*********************** DIFFERENTS CAS PREVUS ************************* C*********************************************************************** C IF(XLTRI.GT.0.D0.AND.RTI.GT.RFS) THEN C IF(XLTTI.GT.0.D0) THEN IF(RTI.GE.XLTTI) THEN EPSPRI=((XLTRI-RTI)/(XLTRI-XLTTI))*EPPTI ELSE EPSPRI=EPPTI+((1.D0-RTI/XLTTI)*(EPTRI-EPPTI)) ENDIF ELSE EPSPRI=(1.D0-RTI/XLTRI)*EPTRI ENDIF C EPRMA=(1.D0-(SQRT(RTI/XLTRI)))*EPSPRI EPRMI=(1.D0-(SQRT(RTI/XLTRI)))*EPRSI EPRM=MIN(EPRMA,EPRMI) C IF(RTI.LT.XLTRI) THEN C IF(ABS(CONTRI-RTI).LT.RFS) THEN IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 200 GO TO 300 ELSE C IF(CONTRI.GT.RFS) THEN IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 500 GO TO 300 ELSE C IF(ABS(CONTRI).LE.RFS) THEN IF(OUVERI.GT.EPRM.AND.(ABS(OUVERI-EPRM)).GT.RFE) THEN IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 500 GO TO 400 ELSE IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 500 GO TO 100 ENDIF ELSE C IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 102 GO TO 100 ENDIF ENDIF ENDIF C ELSE IF(ABS(CONTRI-RTI).LT.RFS) THEN IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 200 GO TO 100 ELSE C IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1 ) GO TO 101 GO TO 100 ENDIF ENDIF ENDIF C IF(XLTRI.EQ.0.D0.OR.RTI.LE.RFS) THEN EPRM=EPRSI IF(ABS(CONTRI).LE.RFS) THEN IF(OUVERI.GT.EPRM.AND.(ABS(OUVERI-EPRM)).GT.RFE) THEN IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 401 GO TO 400 ELSE C IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 401 GO TO 100 ENDIF ELSE C IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. . JECHAI.EQ.1) GO TO 102 GO TO 100 ENDIF ENDIF C 999 KERRE=469 RETURN C C*********************************************************************** C************************ MODULE ELASTIQUE YUNG ************************ C*********************************************************************** C****** DOMAINE DE LA COMPRESSION ************************************** C*********************************************************************** C 100 ETI=YUNG EPPRFI=-1.D0 JECHAI=2 RETURN C C*********************************************************************** C****** DOMAINE DE LA TRACTION ***************************************** C*********************************************************************** C 101 ETI=YUNG EPPRFI=1.D0 JECHAI=1 RETURN C C*********************************************************************** C****** DECHARGE DANS LE DOMAINE DE LA COMPRESSION ********************* C*********************************************************************** C 102 ETI=YUNG EPPRFI=EPRM JECHAI=1 KOMPRI=1 RETURN C C*********************************************************************** C***************** CALCUL DE LA BRANCHE DESCENDANTE ET ***************** C*********************************************************************** C 200 IF(XLTTI.GT.0.D0) THEN IF(RTI.GT.XLTTI) THEN ETI=YUNG*(XLTTI-XLTRI)/((YUNG*EPPTI)+(XLTTI-XLTRI)) EPPRFI=EPPTI ELSE ETI=YUNG*XLTTI/((YUNG*(EPPTI-EPTRI))+XLTTI) EPPRFI=EPTRI ENDIF ELSE ETI=YUNG*XLTRI/((YUNG*(-EPTRI))+XLTRI) EPPRFI=EPTRI ENDIF JECHAI=1 JECROI=1 RETURN C C*********************************************************************** C***************** CALCUL DU MODULE DE DECHARGE ED ********************* C*********************************************************************** C 300 EPPRFI=OUVERI-(CONTRI*EPSPRI/(SQRT(XLTRI*RTI))) C IF(ABS(CONTRI-RTI).LT.RFS) THEN ETI=(YUNG*(SQRT(XLTRI*RTI)))/((SQRT(XLTRI*RTI))+(YUNG*EPSPRI)) ELSE C OUVMAX=(1.D0-((RTI-CONTRI)/(SQRT(XLTRI*RTI))))*EPSPRI OUVMIN=EPRM+((EPSPRI-EPRM)*CONTRI/RTI) EPPMAX=(1.D0-(SQRT(RTI/XLTRI)))*EPSPRI EPPMIN=EPRM+((EPPMAX-EPRM)*CONTRI/RTI) C IF(IIMPI.EQ.9) THEN WRITE(IOIMP,1005) EPPRFI WRITE(IOIMP,1006) EPRM,EPSPRI WRITE(IOIMP,1007) OUVMAX,OUVMIN WRITE(IOIMP,1008) EPPMAX,EPPMIN 1005 FORMAT(2X,'EPPRFI=',1PE12.5) 1006 FORMAT(2X,'EPRM =',1PE12.5,2X,'EPSPRI=',1PE12.5) 1007 FORMAT(2X,'OUVMAX=',1PE12.5,2X,'OUVMIN=',1PE12.5) 1008 FORMAT(2X,'EPPMAX=',1PE12.5,2X,'EPPMIN=',1PE12.5) ENDIF C IF(OUVERI.LT.EPPMIN.OR.OUVERI.GT.EPSPRI) GO TO 999 C IF(OUVERI.LT.OUVMIN.OR.OUVERI.GT.OUVMAX) THEN IF(OUVERI.LT.OUVMIN.AND.OUVERI.GE.EPPMIN) . ETI=(YUNG*CONTRI)/((YUNG*(OUVERI-EPPMIN))+CONTRI) IF(OUVERI.GT.OUVMAX.AND.OUVERI.LE.EPSPRI) . ETI=(YUNG*CONTRI)/((YUNG*(OUVERI-EPPMAX))+CONTRI) ELSE ETI=(YUNG*(SQRT(XLTRI*RTI)))/((SQRT(XLTRI*RTI))+(YUNG*EPSPRI)) ENDIF ENDIF JECHAI=2 RETURN C C*********************************************************************** C************************** MODULE E0 = ZERO *************************** C*********************************************************************** C****** CAS DE DECHARGE ************************************************ C*********************************************************************** C 400 ETI=0.D0 EPPRFI=EPRM JECHAI=2 RETURN C C*********************************************************************** C****** CAS DE RECHARGE ************************************************ C*********************************************************************** C 401 ETI=0.D0 EPPRFI=1.D0 JECHAI=1 RETURN C C*********************************************************************** C***************** CALCUL DU MODULE DE RECHARGE EC ********************* C*********************************************************************** C 500 ETI=(YUNG*(RTI-CONTRI))/((RTI-CONTRI)+YUNG*(EPSPRI-OUVERI)) EPPRFI=EPSPRI JECHAI=1 IF(ETI.LT.0.D0.AND.(ABS(ETI)).GT.RFS) JECROI=1 RETURN C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales