31 SUBROUTINE dt51law (PM,GEO,PID,MAT, BUFMAT, IPM, DELTAX, AIRE, VOL, DTX)
39#include "implicit_f.inc"
47#include "vect01_c.inc"
52 my_real,
INTENT(IN) :: pm(npropm, *), geo(npropg, *), aire(*), vol(*)
53 my_real,
INTENT(INOUT) :: dtx(*)
54 my_real,
INTENT(IN),
DIMENSION(:),
TARGET :: bufmat(*), deltax(*)
55 INTEGER,
INTENT(IN) :: PID(*),MAT(*),IPM(NPROPMI, *)
59 INTEGER :: I, MX, IADBUF,IFLG(MVSIZ)
60DIMENSION(:),
POINTER :: uparam
63 . ssp(mvsiz) , dpdm(mvsiz) , rho0
64 . bulk(mvsiz) , c1(mvsiz) , g43(mvsiz) , p ,
65 . av1(mvsiz) , av2(mvsiz) , av3(mvsiz) , av4(mvsiz) ,
66 . rho10(mvsiz), rho20(mvsiz), rho30(mvsiz), rho40(mvsiz),
67 . c01(mvsiz) , c02(mvsiz) , c03(mvsiz) , c04(mvsiz) ,
68 . c11(mvsiz) , c12(mvsiz) , c13(mvsiz) , c14(mvsiz) ,
69 . c21(mvsiz) , c22(mvsiz) , c23(mvsiz) , c24(mvsiz) ,
70 . c31(mvsiz) , c32(mvsiz) , c33(mvsiz) , c34(mvsiz) ,
71 . c41(mvsiz) , c42(mvsiz) , c43(mvsiz) , c44(mvsiz) ,
72 . c51(mvsiz) , c52(mvsiz) , c53(mvsiz) , c54(mvsiz) ,
73 . g1(mvsiz) , g2(mvsiz) , g3(mvsiz) , g4(mvsiz) ,
74 . e01(mvsiz) , e02(mvsiz) , e03(mvsiz) , e04(mvsiz) ,
75 . pm1(mvsiz) , pm2(mvsiz) , pm3(mvsiz) , pm4(mvsiz) ,
76 . dpdm1(mvsiz), dpdm2(mvsiz), dpdm3(mvsiz), dpdm4(mvsiz),
77 . pext , pfar , vdet(mvsiz) ,
78 . ssp1(mvsiz) , ssp2(mvsiz) , ssp3(mvsiz)
79 . vis(mvsiz) , rho0_bak(mvsiz)
81 INTEGER :: IAV(4),IRHO(4)
85 iav(1:4) = (/ 4,5,6,46 /)
86 irho(1:4) = (/ 9,10,11,47 /)
92 iadbuf = ipm(7,mat(i))
93 uparam =>bufmat(iadbuf:iadbuf+280)
94 bij(1:4) = uparam(277:280)
95 av1(i) = uparam(iav(bij(1)))
96 av2(i) = uparam(iav(bij(2)))
97 av3(i) = uparam(iav(bij(3)))
98 av4(i) = uparam(iav(bij(4)))
101 rho10(i) = uparam(irho(bij(1)))
102 rho20(i) = uparam(irho(bij(2)))
103 rho30(i) = uparam(irho(bij(3)))
104 rho40(i) = uparam(irho(bij(4)))
125 g1(i) = uparam(28)*two_third
126 g2(i) = uparam(29)*two_third
127 g3(i) = uparam(30)*two_third
146 IF (iflg(1) == 6)
THEN
155 IF(av1(i)>zero .AND. rho10(i) > zero)
THEN
156 dpdm1(i) = c11(i)+c51(i)*e01(i)+c41(i)*(c01(i)+c41(i)*e01(i))
157 dpdm1(i) = g1(i) +
max(dpdm1(i), c11(i))
162 IF(av2(i)>zero .AND. rho20(i) > zero)
THEN
163 dpdm2(i) = c12(i)+c52(i)*e02(i)+c42(i)*(c02(i)+c42(i)*e02(i))
164 dpdm2(i) = g2(i) +
max(dpdm2(i), c12(i))
169 IF(av3(i)>zero .AND. rho30(i) > zero)
THEN
170 dpdm3(i) = c13(i)+c53(i)*e03(i)+c43(i)*(c03(i)+c43(i)*e03(i))
171 dpdm3(i) = g3(i) +
max(dpdm3(i), c13(i))
180 ssp1(i) = sqrt(abs(dpdm1(i))/rho10(i))
186 ssp2(i)=sqrt(abs(dpdm2(i))/rho20(i))
192 ssp3(i)=sqrt(abs(dpdm3(i))/rho30(i))
205 rho0(i) = av1(i)*rho10(i) + av2(i)*rho20(i) + av3(i)*rho30(i) + av4(i)*rho40(i)
209 bulk(i) = av1(i)*rho10(i)*ssp1(i)**2
210 . + av2(i)*rho20(i)*ssp2(i)**2
211 . + av3(i)*rho30(i)*ssp3(i)**2
212 . + av4(i)*rho40(i)*ssp4(i)**2
213 IF (rho0(i) > zero)
THEN
214 ssp(i) = sqrt(bulk(i)/rho0(i))
226 CALL dtel(ssp,pm,geo,pid,mat, rho0_bak, vis, deltax, aire, vol, dtx)
228 CALL dtsph(ssp,pm,geo,pid,mat, rho0_bak, vis, deltax, vol, dtx)