1 : C CLMODU SOURCE CHAT 05/01/12 22:08:39 5004 2 : SUBROUTINE CLMODU (YUNG,CONTRI,OUVERI,DCONTI,DEPSTI,RTI, 3 : . XLTRI,XLTTI,EPTTI,EPTRI,EPRSI, 4 : . ETI,EPPRFI,EPSPRI,JECROI,KOMPRI,JECHAI, 5 : . KERRE) 6 : IMPLICIT INTEGER(I-N) 7 : IMPLICIT REAL*8(A-H,O-Z) 8 : -INC CCOPTIO 9 : C 10 : C*********************************************************************** 11 : C**************************** INITIALISATION *************************** 12 : C*********************************************************************** 13 : C 14 : RFE=1.D-8 15 : RFS=YUNG*RFE 16 : EPPTI=EPTTI-XLTTI/YUNG 17 : EPSPRI=EPRSI 18 : IF(XLTRI.GT.0.D0.AND.RTI.LE.RFS) EPSPRI=EPTRI 19 : JECROI=0 20 : KOMPRI=0 21 : C 22 : IF(IIMPI.EQ.9) THEN 23 : WRITE(IOIMP,1001) YUNG,RTI 24 : WRITE(IOIMP,1002) CONTRI,OUVERI,DCONTI,DEPSTI 25 : WRITE(IOIMP,1003) XLTRI,XLTTI,EPTTI 26 : WRITE(IOIMP,1004) EPTRI,EPRSI,EPPTI 27 : 1001 FORMAT(2X,'YUNG =',1PE12.5,2X,'RTI =',1PE12.5) 28 : 1002 FORMAT(2X,'CONTRI=',1PE12.5,2X,'OUVERI=',1PE12.5,/, 29 : . 2X,'DCONTI=',1PE12.5,2X,'DEPSTI=',1PE12.5) 30 : 1003 FORMAT(2X,'XLTRI =',1PE12.5,2X,'XLTTI =',1PE12.5, 31 : . 2X,'EPTTI =',1PE12.5) 32 : 1004 FORMAT(2X,'EPTRI =',1PE12.5,2X,'EPRSI =',1PE12.5, 33 : . 2X,'EPPTI =',1PE12.5) 34 : ENDIF 35 : C 36 : C*********************************************************************** 37 : C*********************** DIFFERENTS CAS PREVUS ************************* 38 : C*********************************************************************** 39 : C 40 : IF(XLTRI.GT.0.D0.AND.RTI.GT.RFS) THEN 41 : C 42 : IF(XLTTI.GT.0.D0) THEN 43 : IF(RTI.GE.XLTTI) THEN 44 : EPSPRI=((XLTRI-RTI)/(XLTRI-XLTTI))*EPPTI 45 : ELSE 46 : EPSPRI=EPPTI+((1.D0-RTI/XLTTI)*(EPTRI-EPPTI)) 47 : ENDIF 48 : ELSE 49 : EPSPRI=(1.D0-RTI/XLTRI)*EPTRI 50 : ENDIF 51 : C 52 : EPRMA=(1.D0-(SQRT(RTI/XLTRI)))*EPSPRI 53 : EPRMI=(1.D0-(SQRT(RTI/XLTRI)))*EPRSI 54 : EPRM=MIN(EPRMA,EPRMI) 55 : C 56 : IF(RTI.LT.XLTRI) THEN 57 : C 58 : IF(ABS(CONTRI-RTI).LT.RFS) THEN 59 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 60 : . JECHAI.EQ.1) GO TO 200 61 : GO TO 300 62 : ELSE 63 : C 64 : IF(CONTRI.GT.RFS) THEN 65 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 66 : . JECHAI.EQ.1) GO TO 500 67 : GO TO 300 68 : ELSE 69 : C 70 : IF(ABS(CONTRI).LE.RFS) THEN 71 : IF(OUVERI.GT.EPRM.AND.(ABS(OUVERI-EPRM)).GT.RFE) THEN 72 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 73 : . JECHAI.EQ.1) GO TO 500 74 : GO TO 400 75 : ELSE 76 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 77 : . JECHAI.EQ.1) GO TO 500 78 : GO TO 100 79 : ENDIF 80 : ELSE 81 : C 82 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 83 : . JECHAI.EQ.1) GO TO 102 84 : GO TO 100 85 : ENDIF 86 : ENDIF 87 : ENDIF 88 : C 89 : ELSE 90 : IF(ABS(CONTRI-RTI).LT.RFS) THEN 91 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 92 : . JECHAI.EQ.1) GO TO 200 93 : GO TO 100 94 : ELSE 95 : C 96 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 97 : . JECHAI.EQ.1 ) GO TO 101 98 : GO TO 100 99 : ENDIF 100 : ENDIF 101 : ENDIF 102 : C 103 : IF(XLTRI.EQ.0.D0.OR.RTI.LE.RFS) THEN 104 : EPRM=EPRSI 105 : IF(ABS(CONTRI).LE.RFS) THEN 106 : IF(OUVERI.GT.EPRM.AND.(ABS(OUVERI-EPRM)).GT.RFE) THEN 107 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 108 : . JECHAI.EQ.1) GO TO 401 109 : GO TO 400 110 : ELSE 111 : C 112 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 113 : . JECHAI.EQ.1) GO TO 401 114 : GO TO 100 115 : ENDIF 116 : ELSE 117 : C 118 : IF((DCONTI.GE.0.D0.AND.JECHAI.EQ.0).OR. 119 : . JECHAI.EQ.1) GO TO 102 120 : GO TO 100 121 : ENDIF 122 : ENDIF 123 : C 124 : 999 KERRE=469 125 : RETURN 126 : C 127 : C*********************************************************************** 128 : C************************ MODULE ELASTIQUE YUNG ************************ 129 : C*********************************************************************** 130 : C****** DOMAINE DE LA COMPRESSION ************************************** 131 : C*********************************************************************** 132 : C 133 : 100 ETI=YUNG 134 : EPPRFI=-1.D0 135 : JECHAI=2 136 : RETURN 137 : C 138 : C*********************************************************************** 139 : C****** DOMAINE DE LA TRACTION ***************************************** 140 : C*********************************************************************** 141 : C 142 : 101 ETI=YUNG 143 : EPPRFI=1.D0 144 : JECHAI=1 145 : RETURN 146 : C 147 : C*********************************************************************** 148 : C****** DECHARGE DANS LE DOMAINE DE LA COMPRESSION ********************* 149 : C*********************************************************************** 150 : C 151 : 102 ETI=YUNG 152 : EPPRFI=EPRM 153 : JECHAI=1 154 : KOMPRI=1 155 : RETURN 156 : C 157 : C*********************************************************************** 158 : C***************** CALCUL DE LA BRANCHE DESCENDANTE ET ***************** 159 : C*********************************************************************** 160 : C 161 : 200 IF(XLTTI.GT.0.D0) THEN 162 : IF(RTI.GT.XLTTI) THEN 163 : ETI=YUNG*(XLTTI-XLTRI)/((YUNG*EPPTI)+(XLTTI-XLTRI)) 164 : EPPRFI=EPPTI 165 : ELSE 166 : ETI=YUNG*XLTTI/((YUNG*(EPPTI-EPTRI))+XLTTI) 167 : EPPRFI=EPTRI 168 : ENDIF 169 : ELSE 170 : ETI=YUNG*XLTRI/((YUNG*(-EPTRI))+XLTRI) 171 : EPPRFI=EPTRI 172 : ENDIF 173 : JECHAI=1 174 : JECROI=1 175 : RETURN 176 : C 177 : C*********************************************************************** 178 : C***************** CALCUL DU MODULE DE DECHARGE ED ********************* 179 : C*********************************************************************** 180 : C 181 : 300 EPPRFI=OUVERI-(CONTRI*EPSPRI/(SQRT(XLTRI*RTI))) 182 : C 183 : IF(ABS(CONTRI-RTI).LT.RFS) THEN 184 : ETI=(YUNG*(SQRT(XLTRI*RTI)))/((SQRT(XLTRI*RTI))+(YUNG*EPSPRI)) 185 : ELSE 186 : C 187 : OUVMAX=(1.D0-((RTI-CONTRI)/(SQRT(XLTRI*RTI))))*EPSPRI 188 : OUVMIN=EPRM+((EPSPRI-EPRM)*CONTRI/RTI) 189 : EPPMAX=(1.D0-(SQRT(RTI/XLTRI)))*EPSPRI 190 : EPPMIN=EPRM+((EPPMAX-EPRM)*CONTRI/RTI) 191 : C 192 : IF(IIMPI.EQ.9) THEN 193 : WRITE(IOIMP,1005) EPPRFI 194 : WRITE(IOIMP,1006) EPRM,EPSPRI 195 : WRITE(IOIMP,1007) OUVMAX,OUVMIN 196 : WRITE(IOIMP,1008) EPPMAX,EPPMIN 197 : 1005 FORMAT(2X,'EPPRFI=',1PE12.5) 198 : 1006 FORMAT(2X,'EPRM =',1PE12.5,2X,'EPSPRI=',1PE12.5) 199 : 1007 FORMAT(2X,'OUVMAX=',1PE12.5,2X,'OUVMIN=',1PE12.5) 200 : 1008 FORMAT(2X,'EPPMAX=',1PE12.5,2X,'EPPMIN=',1PE12.5) 201 : ENDIF 202 : C 203 : IF(OUVERI.LT.EPPMIN.OR.OUVERI.GT.EPSPRI) GO TO 999 204 : C 205 : IF(OUVERI.LT.OUVMIN.OR.OUVERI.GT.OUVMAX) THEN 206 : IF(OUVERI.LT.OUVMIN.AND.OUVERI.GE.EPPMIN) 207 : . ETI=(YUNG*CONTRI)/((YUNG*(OUVERI-EPPMIN))+CONTRI) 208 : IF(OUVERI.GT.OUVMAX.AND.OUVERI.LE.EPSPRI) 209 : . ETI=(YUNG*CONTRI)/((YUNG*(OUVERI-EPPMAX))+CONTRI) 210 : ELSE 211 : ETI=(YUNG*(SQRT(XLTRI*RTI)))/((SQRT(XLTRI*RTI))+(YUNG*EPSPRI)) 212 : ENDIF 213 : ENDIF 214 : JECHAI=2 215 : RETURN 216 : C 217 : C*********************************************************************** 218 : C************************** MODULE E0 = ZERO *************************** 219 : C*********************************************************************** 220 : C****** CAS DE DECHARGE ************************************************ 221 : C*********************************************************************** 222 : C 223 : 400 ETI=0.D0 224 : EPPRFI=EPRM 225 : JECHAI=2 226 : RETURN 227 : C 228 : C*********************************************************************** 229 : C****** CAS DE RECHARGE ************************************************ 230 : C*********************************************************************** 231 : C 232 : 401 ETI=0.D0 233 : EPPRFI=1.D0 234 : JECHAI=1 235 : RETURN 236 : C 237 : C*********************************************************************** 238 : C***************** CALCUL DU MODULE DE RECHARGE EC ********************* 239 : C*********************************************************************** 240 : C 241 : 500 ETI=(YUNG*(RTI-CONTRI))/((RTI-CONTRI)+YUNG*(EPSPRI-OUVERI)) 242 : EPPRFI=EPSPRI 243 : JECHAI=1 244 : IF(ETI.LT.0.D0.AND.(ABS(ETI)).GT.RFS) JECROI=1 245 : RETURN 246 : C 247 : END 248 :
© Cast3M 2003 - All rights reserved.
Disclaimer