1 : C AUSTRK SOURCE CHAT 05/01/12 21:29:35 5004 2 : C SOURCE MARTINEZ 2/10/1998 3 : C 4 : C======================================================================= 5 : C 6 : SUBROUTINE AUSTRK(VWRK1,ZFIN,CKA0,CKA1,CLA0,CLA1,DTPS) 7 : C 8 : C======================================================================= 9 : C 10 : C Calcul de transformations de phases 11 : C appelee par TRPHA2 12 : C 13 : C calcul de l'austenitisation 14 : C le modele de Leblond est integre par une methode runge-kutta 15 : C d'ordre 4 16 : C 17 : C vwrk1 /1 temperature 18 : C /2 vitesse de chauf,refr 19 : C /3 proportion d'austenite 20 : C /4 proportion de ferrite 21 : C /5 proportion de bainite 22 : C /6 proportion de martensite 23 : C /7 temperature de debut de transf. martensitique 24 : C zfin resultat 25 : C /1 proportion d'austenite 26 : C /2 proportion de ferrite 27 : C /3 proportion de bainite 28 : C /4 proportion de martensite 29 : C cka0,cla0 coef au pas i 30 : C cka1,cla1 coef au pas i+1 31 : C dtps pas de temps 32 : C 33 : C======================================================================= 34 : C 35 : IMPLICIT INTEGER(I-N) 36 : IMPLICIT REAL*8(A-H,O-Z) 37 : REAL*8 VWRK1(7),ZFIN(4) 38 : PARAMETER (SMALL=1.D-5,PRESQU_UN=0.9999999) 39 : C 40 : C RECUPERATION DE L'ETAT INITIAL 41 : C 42 : ZA0=VWRK1(3) 43 : ZF0=VWRK1(4) 44 : ZB0=VWRK1(5) 45 : ZM0=VWRK1(6) 46 : C 47 : C LINEARISATION DES COEF MATERIAU 48 : C 49 : CLAL=(CLA1-CLA0)/DTPS 50 : CKAL=(CKA1-CKA0)/DTPS 51 : C 52 : C APPLICATION DE RUNGE-KUTTA 53 : C 54 : DDTP=DTPS*0.5D0 55 : DTP6=DTPS/6.D0 56 : C 57 : ZFP1=CLA0*ZA0-CKA0*ZF0 58 : ZBP1=CLA0*ZA0-CKA0*ZB0 59 : ZMP1=CLA0*ZA0-CKA0*ZM0 60 : IF (ZFP1.GT.0.) ZFP1=0. 61 : IF (ZBP1.GT.0.) ZBP1=0. 62 : IF (ZMP1.GT.0.) ZMP1=0. 63 : ZAP1=-1.*(ZFP1+ZBP1+ZMP1) 64 : ZAK=ZA0+ZAP1*DDTP 65 : IF (ZAK.GT.PRESQU_UN) ZAK=1. 66 : ZFK=ZF0+ZFP1*DDTP 67 : IF (ZFK.LT.SMALL) ZFK=0. 68 : ZBK=ZB0+ZBP1*DDTP 69 : IF (ZBK.LT.SMALL) ZBK=0. 70 : ZMK=ZM0+ZMP1*DDTP 71 : IF (ZMK.LT.SMALL) ZMK=0. 72 : C 73 : X=DDTP 74 : ZFP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK 75 : ZBP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK 76 : ZMP2=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK 77 : IF (ZFP2.GT.0.) ZFP2=0. 78 : IF (ZBP2.GT.0.) ZBP2=0. 79 : IF (ZMP2.GT.0.) ZMP2=0. 80 : ZAP2=-1.*(ZFP2+ZBP2+ZMP2) 81 : ZAK=ZA0+ZAP2*DDTP 82 : IF (ZAK.GT.PRESQU_UN) ZAK=1. 83 : ZFK=ZF0+ZFP2*DDTP 84 : IF (ZFK.LT.SMALL) ZFK=0. 85 : ZBK=ZB0+ZBP2*DDTP 86 : IF (ZBK.LT.SMALL) ZBK=0. 87 : ZMK=ZM0+ZMP2*DDTP 88 : IF (ZMK.LT.SMALL) ZMK=0. 89 : C 90 : ZFP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZFK 91 : ZBP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZBK 92 : ZMP3=(CLAL*X+CLA0)*ZAK-(CKAL*X+CKA0)*ZMK 93 : IF (ZFP3.GT.0.) ZFP3=0. 94 : IF (ZBP3.GT.0.) ZBP3=0. 95 : IF (ZMP3.GT.0.) ZMP3=0. 96 : ZAP3=-1.*(ZFP3+ZBP3+ZMP3) 97 : ZAK=ZA0+ZAP3*DTPS 98 : IF (ZAK.GT.PRESQU_UN) ZAK=1. 99 : ZFK=ZF0+ZFP3*DTPS 100 : IF (ZFK.LT.SMALL) ZFK=0. 101 : ZBK=ZB0+ZBP3*DTPS 102 : IF (ZBK.LT.SMALL) ZBK=0. 103 : ZMK=ZM0+ZMP3*DTPS 104 : IF (ZMK.LT.SMALL) ZMK=0. 105 : C 106 : ZAP23=ZAP2+ZAP3 107 : ZFP23=ZFP2+ZFP3 108 : ZBP23=ZBP2+ZBP3 109 : ZMP23=ZMP2+ZMP3 110 : C 111 : ZFP4=CLA1*ZAK-CKA1*ZFK 112 : ZBP4=CLA1*ZAK-CKA1*ZBK 113 : ZMP4=CLA1*ZAK-CKA1*ZMK 114 : IF (ZFP4.GT.0.) ZFP4=0. 115 : IF (ZBP4.GT.0.) ZBP4=0. 116 : IF (ZMP4.GT.0.) ZMP4=0. 117 : ZAP4=-1.*(ZFP4+ZBP4+ZMP4) 118 : C 119 : ZA1=ZA0+DTP6*(ZAP1+ZAP4+2.D0*ZAP23) 120 : IF (ZA1.GT.PRESQU_UN) ZA1=1. 121 : ZF1=ZF0+DTP6*(ZFP1+ZFP4+2.D0*ZFP23) 122 : IF (ZF1.LT.SMALL) ZF1=0. 123 : ZB1=ZB0+DTP6*(ZBP1+ZBP4+2.D0*ZBP23) 124 : IF (ZB1.LT.SMALL) ZB1=0. 125 : ZM1=ZM0+DTP6*(ZMP1+ZMP4+2.D0*ZMP23) 126 : IF (ZM1.LT.SMALL) ZM1=0. 127 : C 128 : ZFIN(1)=ZA1 129 : ZFIN(2)=ZF1 130 : ZFIN(3)=ZB1 131 : ZFIN(4)=ZM1 132 : C 133 : RETURN 134 : C 135 : END 136 : 137 :
© Cast3M 2003 - All rights reserved.
Disclaimer