austrk
C AUSTRK SOURCE CHAT 05/01/12 21:29:35 5004 C SOURCE MARTINEZ 2/10/1998 C C======================================================================= C C C======================================================================= C C Calcul de transformations de phases C appelee par TRPHA2 C C calcul de l'austenitisation C le modele de Leblond est integre par une methode runge-kutta C d'ordre 4 C C vwrk1 /1 temperature C /2 vitesse de chauf,refr C /3 proportion d'austenite C /4 proportion de ferrite C /5 proportion de bainite C /6 proportion de martensite C /7 temperature de debut de transf. martensitique C zfin resultat C /1 proportion d'austenite C /2 proportion de ferrite C /3 proportion de bainite C /4 proportion de martensite C cka0,cla0 coef au pas i C cka1,cla1 coef au pas i+1 C dtps pas de temps C C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 VWRK1(7),ZFIN(4) PARAMETER (SMALL=1.D-5,PRESQU_UN=0.9999999) C C RECUPERATION DE L'ETAT INITIAL C ZA0=VWRK1(3) ZF0=VWRK1(4) ZB0=VWRK1(5) ZM0=VWRK1(6) C C LINEARISATION DES COEF MATERIAU C CLAL=(CLA1-CLA0)/DTPS CKAL=(CKA1-CKA0)/DTPS C C APPLICATION DE RUNGE-KUTTA C DDTP=DTPS*0.5D0 DTP6=DTPS/6.D0 C ZFP1=CLA0*ZA0-CKA0*ZF0 ZBP1=CLA0*ZA0-CKA0*ZB0 ZMP1=CLA0*ZA0-CKA0*ZM0 IF (ZFP1.GT.0.) ZFP1=0. IF (ZBP1.GT.0.) ZBP1=0. IF (ZMP1.GT.0.) ZMP1=0. ZAP1=-1.*(ZFP1+ZBP1+ZMP1) ZAK=ZA0+ZAP1*DDTP IF (ZAK.GT.PRESQU_UN) ZAK=1. ZFK=ZF0+ZFP1*DDTP IF (ZFK.LT.SMALL) ZFK=0. ZBK=ZB0+ZBP1*DDTP IF (ZBK.LT.SMALL) ZBK=0. ZMK=ZM0+ZMP1*DDTP IF (ZMK.LT.SMALL) ZMK=0. C X=DDTP ZFP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK ZBP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK ZMP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK IF (ZFP2.GT.0.) ZFP2=0. IF (ZBP2.GT.0.) ZBP2=0. IF (ZMP2.GT.0.) ZMP2=0. ZAP2=-1.*(ZFP2+ZBP2+ZMP2) ZAK=ZA0+ZAP2*DDTP IF (ZAK.GT.PRESQU_UN) ZAK=1. ZFK=ZF0+ZFP2*DDTP IF (ZFK.LT.SMALL) ZFK=0. ZBK=ZB0+ZBP2*DDTP IF (ZBK.LT.SMALL) ZBK=0. ZMK=ZM0+ZMP2*DDTP IF (ZMK.LT.SMALL) ZMK=0. C ZFP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK ZBP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK ZMP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK IF (ZFP3.GT.0.) ZFP3=0. IF (ZBP3.GT.0.) ZBP3=0. IF (ZMP3.GT.0.) ZMP3=0. ZAP3=-1.*(ZFP3+ZBP3+ZMP3) ZAK=ZA0+ZAP3*DTPS IF (ZAK.GT.PRESQU_UN) ZAK=1. ZFK=ZF0+ZFP3*DTPS IF (ZFK.LT.SMALL) ZFK=0. ZBK=ZB0+ZBP3*DTPS IF (ZBK.LT.SMALL) ZBK=0. ZMK=ZM0+ZMP3*DTPS IF (ZMK.LT.SMALL) ZMK=0. C ZAP23=ZAP2+ZAP3 ZFP23=ZFP2+ZFP3 ZBP23=ZBP2+ZBP3 ZMP23=ZMP2+ZMP3 C ZFP4=CLA1*ZAK-CKA1*ZFK ZBP4=CLA1*ZAK-CKA1*ZBK ZMP4=CLA1*ZAK-CKA1*ZMK IF (ZFP4.GT.0.) ZFP4=0. IF (ZBP4.GT.0.) ZBP4=0. IF (ZMP4.GT.0.) ZMP4=0. ZAP4=-1.*(ZFP4+ZBP4+ZMP4) C ZA1=ZA0+DTP6*(ZAP1+ZAP4+2.D0*ZAP23) IF (ZA1.GT.PRESQU_UN) ZA1=1. ZF1=ZF0+DTP6*(ZFP1+ZFP4+2.D0*ZFP23) IF (ZF1.LT.SMALL) ZF1=0. ZB1=ZB0+DTP6*(ZBP1+ZBP4+2.D0*ZBP23) IF (ZB1.LT.SMALL) ZB1=0. ZM1=ZM0+DTP6*(ZMP1+ZMP4+2.D0*ZMP23) IF (ZM1.LT.SMALL) ZM1=0. C ZFIN(1)=ZA1 ZFIN(2)=ZF1 ZFIN(3)=ZB1 ZFIN(4)=ZM1 C RETURN C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales