1 : C C2DP SOURCE CHAT 05/01/12 21:44:59 5004 2 : SUBROUTINE C2DP(SIG,DSIG,YOUN,ANU,RT1,RT2,RDP,ADP,HDP, 3 : 1 XLAM1,XLAM2,XLAM3,IDAM,ANG,EPPLDP,ALPHA,KERRE) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : -INC CCOPTIO 7 : DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3), 8 : 1 A(3),B(3),IDAM(3),EPC(3),SSI(3),SI(3),EPC1(3), 9 : 1 EPDP(3),EC(3),EPPLDP(3),SG(3),AT(4),BT(2),TENS(3) 10 : ITER=0 11 : Y=YOUN/(1.D0-ANU*ANU) 12 : SIREF=1.E-6*YOUN 13 : DO 10 ITYP=1,3 14 : EPDP(ITYP)=0.D0 15 : 10 EPPLDP(ITYP)=0.D0 16 : DL3=0.D0 17 : XT=0.D0 18 : IF(IIMPI.EQ.9) WRITE(IOIMP,9999) 19 : 9999 FORMAT(1X,'C2DP COUPLAGE COMP 2 DRUCKER',/) 20 : 9998 FORMAT(1X,'C2DP ',I4,'ITERATIONS INTERNES',/) 21 : C 22 : C------------------------------------------------ 23 : C COUPLAGE COMPRESSION 2 DRUCKER 24 : C------------------------------------------------ 25 : C---------------------------------------------- 26 : C DEFINITION D UNE CONTRAINTE DE REFERENCE 27 : C SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR 28 : C ALORS SIGMA=0 29 : C---------------------------------------------- 30 : C 31 : RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) 32 : IF(SIREF.GT.RMAX) THEN 33 : DO 20 ITYP=1,3 34 : 20 SIG(ITYP)=SIG(ITYP)+DSIG(ITYP) 35 : RDP=0.D0 36 : HDP=0.D0 37 : ADP=0.D0 37 : CALL CPHOIN(SIG,EPPLDP,YOUN,ANU) 37 : CALL NORME(SIG,DL3) 38 : DL3=DL3/YOUN*10.D0 39 : XLAM3=XLAM3+DL3 40 : DO 30 ITYP=1,3 41 : IDAM(ITYP)=0 42 : DSIG(ITYP)=0.D0 43 : 30 SIG(ITYP)=0.D0 44 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 45 : RETURN 46 : ENDIF 47 : C----------------------------------------------- 48 : C ON SEPLACE DANS LE REPERE DE FISSURATION 49 : C----------------------------------------------- 50 : C 50 : CALL CHREP(SIG,SFG,ANG) 50 : CALL CHREP(DSIG,DSFG,ANG) 51 : C 52 : C----------------------------------------------------- 53 : C ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES 54 : C----------------------------------------------------- 55 : C 55 : CALL SIJ(SFG,SI,SIETOI) 55 : CALL EPSDP(SI,SIETOI,ADP,EPC) 55 : CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA) 55 : CALL SCAL2(EPC,SSI,VAL) 56 : VAL=VAL-HDP 57 : IF(VAL.LT.0.D0) THEN 58 : KERRE=459 59 : RETURN 60 : ENDIF 60 : CALL SCAL(SSI,DSFG,VAL) 60 : CALL NORME(DSFG,VA1) 60 : CALL NORME(SSI,VA2) 61 : IF(VA1.EQ.0.D0) THEN 62 : IDAM(1)=0 63 : IDAM(2)=0 64 : IDAM(3)=0 65 : RETURN 66 : ENDIF 67 : RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP))) 68 : X=VAL/VA1/VA2 69 : IF(X.GE.1.D0) THEN 70 : X=1.D0 71 : GOTO 41 72 : ENDIF 73 : X=1.D0/SQRT(1.0001D0-X*X)*RMIN/VA1/8.D0 74 : IF(X.GE.1.D0) X=1.D0 75 : C 76 : C---------------------------------------------------------- 77 : C ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE 78 : C---------------------------------------------------------- 79 : C 80 : C 81 : C--------------------------------------- 82 : C RESOLUTION DU SYSTEME EN DL3 83 : C--------------------------------------- 84 : 41 X=X/2.D0 85 : EC(1)=0.D0 86 : EC(2)=1.D0 87 : EC(3)=0.D0 87 : CALL CPHOOB(EC,SG,YOUN,ANU) 88 : 100 X=X*2.D0 88 : CALL SIJ(SFG,SI,SIETOI) 88 : CALL EPSDP(SI,SIETOI,ADP,EPC) 88 : CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA) 88 : CALL SCAL2(EPC,SSI,VAL) 89 : VAL=VAL-HDP 90 : IF(VAL.LT.0.D0) THEN 91 : KERRE=459 92 : RETURN 93 : ENDIF 94 : IF((XT+X).GT.1.D0) X=1.D0-XT 95 : 110 RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) 96 : C 97 : C -------------------------------------------------- 98 : C CAS OU LE RAYON MAXIMAL DU DRUCKER-PRAGER 99 : C INFERIEUR A LA CONTRAINTE DE REFERENCE 100 : C -------------------------------------------------- 101 : C 102 : IF(SIREF.LT.RMAX) GOTO 131 103 : DO 120 ITYP=1,3 104 : 120 SFG(ITYP)=SFG(ITYP)+(1.D0-XT)*DSFG(ITYP) 105 : RDP=0.D0 106 : ADP=0.D0 107 : HDP=0.D0 107 : CALL NORME(SFG,DL3) 108 : DL3=DL3/YOUN*10.D0 109 : XLAM3=XLAM3+DL3 109 : CALL CPHOIN(SFG,EPPLDP,YOUN,ANU) 110 : DO 130 ITYP=1,3 111 : IDAM(ITYP)=0 112 : EPDP(ITYP)=EPDP(ITYP)+EPPLDP(ITYP) 113 : DSIG(ITYP)=0.D0 114 : 130 SIG(ITYP)=0.D0 114 : CALL CHREP(EPDP,EPPLDP,-ANG) 115 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 116 : RETURN 117 : 131 ITER=ITER+1 118 : IF(ITER.GT.200) THEN 119 : KERRE=460 120 : RETURN 121 : ENDIF 122 : C 123 : C--------------------------------- 124 : C ON REALISE LE COUPLAGE 125 : C--------------------------------- 126 : C 127 : E=-(SFG(2)+X*DSFG(2))/SG(2) 128 : F=SSI(2)/SG(2) 129 : DO 140 ITYP=1,3 130 : DSGG(ITYP)=X*DSFG(ITYP) 131 : A(ITYP)=SFG(ITYP)+DSGG(ITYP)+E*SG(ITYP) 132 : 140 B(ITYP)=-SSI(ITYP)+F*SG(ITYP) 132 : CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST) 133 : IF(ITEST.EQ.1) THEN 134 : X=X/2.D0 135 : GOTO 131 136 : ENDIF 137 : DL2=-E-F*DL3 138 : DO 145 ITYP=1,3 139 : 145 SGG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP) 140 : C 141 : C---------------------------------------------- 142 : C SI UN DES DLAMDA < 0 FAUX COUPLAGE 143 : C---------------------------------------------- 144 : C 145 : IF(DL2.GT.0.D0) IDAM(2)=0 146 : IF(DL3.LT.0.D0) IDAM(3)=0 147 : IF(IDAM(2).EQ.0.OR.IDAM(3).EQ.0) THEN 148 : DL2=0.D0 149 : DL3=0.D0 150 : X=0.D0 151 : GOTO 3000 152 : ENDIF 153 : C 154 : C----------------------------------------------------- 155 : C ON VERIFIE QUE LA NORMALE SUIVANT LE DRUCKER 156 : C PRAGER TOURNE PEU 157 : C----------------------------------------------------- 158 : C 158 : CALL SIJ(SGG,SI,SIETOI) 158 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 158 : CALL SCAL(EPC,EPC1,VAL) 158 : CALL NORME(EPC,VA1) 158 : CALL NORME(EPC1,VA2) 159 : CO=VAL/VA1/VA2 160 : IF(CO.LT.0.99) THEN 161 : X=X/2.D0 162 : GOTO 131 163 : ENDIF 164 : IF((DL2+XLAM2).GE.0.D0) GOTO 200 165 : C 166 : C------------------------------------------------ 167 : C CAS OU LA FISSURE EST COMPLETEMENT FERMEE 168 : C------------------------------------------------ 169 : C 170 : IDAM(2)=0 171 : DL2=-XLAM2 172 : IF(DSFG(2).EQ.0.D0) GOTO 160 173 : E=(DL2*SG(2)-SFG(2))/DSFG(2) 174 : F=SSI(2)/DSFG(2) 175 : DO 150 ITYP=1,3 176 : A(ITYP)=SFG(ITYP)-DL2*SG(ITYP)+E*DSFG(ITYP) 177 : 150 B(ITYP)=F*DSFG(ITYP)-SSI(ITYP) 177 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 178 : DO 151 ITYP=1,3 179 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 180 : 151 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 180 : CALL SIJ(SGG,SI,SIETOI) 180 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 180 : CALL SCAL(EPC,EPC1,VAL) 180 : CALL NORME(EPC,VA1) 180 : CALL NORME(EPC1,VA2) 181 : CO1=VAL/VA1/VA2 181 : CALL SIJ(DSGG,SI,SIETOI) 181 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 181 : CALL SCAL(EPC,EPC1,VAL) 181 : CALL NORME(EPC,VA1) 181 : CALL NORME(EPC1,VA2) 182 : CO2=VAL/VA1/VA2 183 : XIN1=E+F*DL31 184 : XIN2=E+F*DL32 185 : IF(XIN1.GT.-1.D-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN 186 : DL3=DL31 187 : X=XIN1 188 : GOTO 200 189 : ENDIF 190 : IF(XIN2.GT.-1.D-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN 191 : DL3=DL32 192 : X=XIN2 193 : GOTO 200 194 : ENDIF 195 : IF(IIMPI.EQ.9) WRITE(IOIMP,10101) 196 : 10101 FORMAT(1X,'ERREUR DANS C2DP FERM ',/) 197 : DL3=DL31 198 : X=XIN1 199 : GOTO 200 200 : 160 DL3=(SFG(2)-DL2*SG(2))/SSI(2) 201 : RD=RDP-HDP*DL3 202 : IF(RD.LT.0.D0) THEN 203 : RDP=0.D0 204 : GOTO 110 205 : ENDIF 206 : DO 170 ITYP=1,3 207 : A(ITYP)=SFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP) 208 : 170 B(ITYP)=DSFG(ITYP) 208 : CALL XDP(A,B,RD,ADP,X,ITEST) 209 : 200 CONTINUE 210 : DO 205 ITYP=1,3 211 : DSGG(ITYP)=X*DSFG(ITYP) 212 : 205 SGG(ITYP)=SFG(ITYP)+DSGG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP) 213 : C 214 : C----------------------------------------------- 215 : C ON REGARDE SI ON ENDOMMAGE PAS LES AUTRES 216 : C CRITERES 217 : C----------------------------------------------- 218 : C------------------------------------- 219 : C ON ENDOMMAGE LA TRACTION 1 220 : C------------------------------------- 221 : C 221 : CALL CTRAF(SGG(1),RT1,VCTR) 222 : IF(VCTR.LE.0.D0) GOTO 1000 223 : IDAM(1)=1 224 : IDAM(2)=-1 225 : IDAM(3)=1 226 : AT(1)=-DSFG(1) 227 : AT(4)=Y 228 : AT(2)=Y*ANU 229 : AT(3)=-DSFG(2) 230 : BT(1)=SFG(1)-RT1 231 : BT(2)=SFG(2) 231 : CALL SYLIN2(AT,BT,X1,DL21) 232 : BT(1)=-SSI(1) 233 : BT(2)=-SSI(2) 233 : CALL SYLIN2(AT,BT,X2,DL22) 234 : DO 230 ITYP=1,3 235 : A(ITYP)=SFG(ITYP)-DL21*SG(ITYP)+X1*DSFG(ITYP) 236 : 230 B(ITYP)=-DL22*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP) 236 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 237 : DO 231 ITYP=1,3 238 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 239 : 231 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 239 : CALL SIJ(SGG,SI,SIETOI) 239 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 239 : CALL SCAL(EPC,EPC1,VAL) 239 : CALL NORME(EPC,VA1) 239 : CALL NORME(EPC1,VA2) 240 : CO1=VAL/VA1/VA2 240 : CALL SIJ(DSGG,SI,SIETOI) 240 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 240 : CALL SCAL(EPC,EPC1,VAL) 240 : CALL NORME(EPC,VA1) 240 : CALL NORME(EPC1,VA2) 241 : CO2=VAL/VA1/VA2 242 : DLIN1=DL21+DL31*DL22 243 : DLIN2=DL21+DL32*DL22 244 : XIN1=X1+DL31*X2 245 : XIN2=X1+DL32*X2 246 : IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X 247 : 1 .AND.CO1.GT.0.9) THEN 248 : DL3=DL31 249 : X=XIN1 250 : DL2=DLIN1 251 : GOTO 3000 252 : ENDIF 253 : IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X 254 : 1 .AND.CO2.GT.0.9) THEN 255 : DL3=DL32 256 : X=XIN2 257 : DL2=DLIN2 258 : GOTO 3000 259 : ENDIF 260 : IF(IIMPI.EQ.9) WRITE(IOIMP,20202) 261 : 20202 FORMAT(1X,'ERREUR DANS C2DP TRAC ',/) 262 : DL3=DL31 263 : DL2=DLIN1 264 : X=XIN1 265 : GOTO 3000 266 : C 267 : C------------------------------------- 268 : C ON ENDOMMAGE LA COMPRESSION 1 269 : C------------------------------------- 270 : C 270 : 1000 CALL CCOAF(SGG(1),XLAM1,VCCO1) 271 : IF(VCCO1.LE.0.D0) GOTO 2000 272 : IDAM(1)=-1 273 : IDAM(3)=1 274 : IDAM(2)=-1 275 : AT(1)=-DSFG(1) 276 : AT(4)=Y 277 : AT(2)=Y*ANU 278 : AT(3)=-DSFG(2) 279 : BT(1)=SFG(1) 280 : BT(2)=SFG(2) 280 : CALL SYLIN2(AT,BT,X1,DL21) 281 : BT(1)=-SSI(1) 282 : BT(2)=-SSI(2) 282 : CALL SYLIN2(AT,BT,X2,DL22) 283 : DO 1010 ITYP=1,3 284 : A(ITYP)=SFG(ITYP)-DL21*SG(ITYP)+X1*DSFG(ITYP) 285 : 1010 B(ITYP)=-DL22*SG(ITYP)+X2*DSFG(ITYP)-SSI(ITYP) 285 : CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST) 286 : DO 1011 ITYP=1,3 287 : SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 288 : 1011 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) 288 : CALL SIJ(SGG,SI,SIETOI) 288 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 288 : CALL SCAL(EPC,EPC1,VAL) 288 : CALL NORME(EPC,VA1) 288 : CALL NORME(EPC1,VA2) 289 : CO1=VAL/VA1/VA2 289 : CALL SIJ(DSGG,SI,SIETOI) 289 : CALL EPSDP(SI,SIETOI,ADP,EPC1) 289 : CALL SCAL(EPC,EPC1,VAL) 289 : CALL NORME(EPC,VA1) 289 : CALL NORME(EPC1,VA2) 290 : CO2=VAL/VA1/VA2 291 : * DLIN1=DL11+DL31*DL12 CORRECTION PV ??? 292 : * DLIN2=DL11+DL32*DL12 SUITE ERREUR APPOLO 293 : DLIN1=DL21+DL31*DL22 294 : DLIN2=DL21+DL32*DL22 295 : XIN1=X1+DL31*X2 296 : XIN2=X1+DL32*X2 297 : IF(XIN1.GT.-1.D-10.AND.DLIN1.LT.1.E-10.AND.XIN1.LE.X 298 : 1 .AND.CO1.GT.0.9) THEN 299 : DL3=DL31 300 : X=XIN1 301 : DL2=DLIN1 302 : GOTO 3000 303 : ENDIF 304 : IF(XIN2.GT.-1.D-10.AND.DLIN2.LT.1.E-10.AND.XIN2.LE.X 305 : 1 .AND.CO2.GT.0.9) THEN 306 : DL3=DL32 307 : X=XIN2 308 : DL2=DLIN2 309 : GOTO 3000 310 : ENDIF 311 : IF(IIMPI.EQ.9) WRITE(IOIMP,30303) 312 : 30303 FORMAT(1X,'ERREUR DANS C2DP COMP ',/) 313 : DL3=DL31 314 : DL2=DLIN1 315 : X=XIN1 316 : GOTO 3000 317 : 2000 CONTINUE 318 : C 319 : C------------------------------------------------ 320 : C CAS OU AUCUN AUTRE CRITERE EST ENDOMMAGE 321 : C------------------------------------------------ 322 : C----------------------------------- 323 : C REMISE A JOUR DES VARIABLES 324 : C PUIS NOUVEAU PAS SI TOUT 325 : C L INCREMENT N EST PAS ECOULE 326 : C----------------------------------- 327 : C 328 : XT=XT+X 329 : RDP=RDP-DL3*HDP 330 : RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) 331 : IF(SIREF.GT.RMAX) THEN 332 : RDP=0.D0 333 : GOTO 110 334 : ENDIF 335 : DO 2010 ITYP=1,3 336 : SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP) 337 : 2010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP) 338 : XLAM2=XLAM2+DL2 339 : XLAM3=XLAM3+DL3 340 : IF(XLAM2.LT.1.E-10) XLAM2=0.D0 341 : IF(XLAM2.LT.1.E-10) IDAM(2)=0 342 : C=1.D0-1.D-10 343 : IF(XT.LT.C) GOTO 2020 344 : DO 2015 ITYP=1,3 345 : IDAM(ITYP)=0 346 : 2015 DSIG(ITYP)=0.D0 346 : CALL CHREP(SFG,SIG,-ANG) 346 : CALL CHREP(EPDP,EPPLDP,-ANG) 347 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 348 : RETURN 349 : 2020 IF(IDAM(2).EQ.-1) GOTO 100 350 : XLAM2=0.D0 351 : GAMDP=10.D0 352 : GAMTR1=10.D0 353 : GAMTR2=10.D0 354 : GAMCO1=10.D0 355 : DO 2030 ITYP=1,3 356 : DSFG(ITYP)=DSFG(ITYP)*(1.D0-XT) 357 : 2030 TENS(ITYP)=SFG(ITYP)+DSFG(ITYP) 357 : CALL CTRAF(TENS(1),RT1,VCTR1) 357 : CALL CTRAF(TENS(2),RT2,VCTR2) 357 : CALL CCOAF(TENS(1),XLAM1,VCCO1) 357 : CALL CDP(TENS,ADP,RDP,VCDP) 357 : IF(VCTR1.GT.0.D0) CALL GAMTAF(SFG(1),DSFG(1),RT1,GAMTR1) 357 : IF(VCTR2.GT.0.D0) CALL GAMTAF(SFG(2),DSFG(2),RT2,GAMTR2) 357 : IF(VCCO1.GT.0.D0) CALL GAMCAF(SFG(1),DSFG(1),GAMCO1) 357 : IF(VCDP.GT.0.D0) CALL GDP(SFG,DSFG,RDP,ADP,GAMDP) 358 : IDAM(1)=0 359 : IDAM(2)=0 360 : IDAM(3)=0 361 : GAM=MIN(GAMTR1,GAMTR2,GAMCO1,GAMDP) 362 : IF(GAM.GE.1.D0) THEN 363 : DO 2040 ITYP=1,3 364 : SFG(ITYP)=SFG(ITYP)+DSFG(ITYP) 365 : 2040 DSIG(ITYP)=0.D0 365 : CALL CHREP(SFG,SIG,-ANG) 366 : RETURN 367 : ENDIF 368 : IF(ABS(GAM-GAMTR1).LE.1.E-10) IDAM(1)=1 369 : IF(ABS(GAM-GAMTR2).LE.1.E-10) IDAM(2)=1 370 : IF(ABS(GAM-GAMCO1).LE.1.E-10) IDAM(1)=-1 371 : IF(ABS(GAM-GAMDP).LE.1.E-10) IDAM(3)=1 372 : DO 2050 ITYP=1,3 373 : SFG(ITYP)=SFG(ITYP)-GAM*DSFG(ITYP) 374 : 2050 DSFG(ITYP)=(1.D0-GAM)*DSFG(ITYP) 374 : CALL CHREP(SFG,SIG,-ANG) 374 : CALL CHREP(DSFG,DSIG,-ANG) 374 : CALL CHREP(EPDP,EPPLDP,-ANG) 375 : RETURN 376 : 3000 RDP=RDP-DL3*HDP 377 : RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) 378 : IF(SIREF.GT.RMAX) THEN 379 : RDP=0.D0 380 : GOTO 110 381 : ENDIF 382 : XT=XT+X 383 : DO 3010 ITYP=1,3 384 : SFG(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-DL2*SG(ITYP)-DL3*SSI(ITYP) 385 : DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP) 386 : 3010 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP) 386 : CALL CHREP(SFG,SIG,-ANG) 386 : CALL CHREP(DSFG,DSIG,-ANG) 386 : CALL CHREP(EPDP,EPPLDP,-ANG) 387 : XLAM2=XLAM2+DL2 388 : XLAM3=XLAM3+DL3 389 : IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER 390 : RETURN 391 : END 392 :
© Cast3M 2003 - All rights reserved.
Disclaimer