1 : C DSLAMBDA SOURCE AM 12/02/28 21:15:10 7291 2 : SUBROUTINE dsiglambda(x1,x2,P2,pi2,ag,fc,fb,lcp,rkappait, 3 : . parahot3,idimpara3,U,H66,sigma,dsiglt,dsiglc) 4 : 5 : c This subroutine calculates the DERIVATIVE OF THE STRESS VECTOR with respect to THE PLASTIC MULTIPLIER 6 : c corresponding to the plastic multipliers Dlambdat = x1 and Dlambdac = x2 7 : 8 : IMPLICIT REAL*8 (A-B,D-H,O-Z) 9 : implicit integer (I-K,M,N) 10 : implicit logical (L) 11 : implicit character*10 (C) 12 : 13 : dimension sigma(6),d2gc(6,6),d2gt(6,6),trav66(6,6),H66(6,6) 14 : dimension trav66b(6,6),B1(6,6),dgt(6),dgc(6),trav6(6) 15 : dimension trav6b(6),dsiglt(6),dsiglc(6),pi2(6),P2(6,6) 16 : dimension parahot3(idimpara3),U(6,6) 17 : 18 : Dlambdat = x1 19 : Dlambdac = x2 20 : 20 : call ddsigrank(sigma,d2gt,1,2,3,4,5,6,lcp,parahot3,idimpara3) 20 : call ddsiggc(sigma,d2gc,ag,P2,pi2,1,6,fc,fb,lcp) 21 : 21 : call mulAB(H66,d2gt,trav66,6,6,6,6) 22 : do jloc=1,6 23 : do iloc=1,6 24 : trav66(iloc,jloc) = Dlambdat * trav66(iloc,jloc) 25 : end do 26 : enddo 26 : call mulAB(H66,d2gc,trav66b,6,6,6,6) 27 : do jloc=1,6 28 : do iloc=1,6 29 : trav66b(iloc,jloc) = Dlambdac * trav66b(iloc,jloc) 30 : end do 31 : enddo 32 : do jloc=1,6 33 : do iloc=1,6 34 : B1(iloc,jloc) = U(iloc,jloc) + trav66(iloc,jloc) + 35 : . trav66b(iloc,jloc) 36 : end do 37 : enddo 37 : call invert9(B1,6,6) 38 : 38 : call dsigRank(sigma,dgt,3,6,parahot3,idimpara3,rkappait,lcp) 38 : call dsiggc(sigma,dgc,ag,P2,pi2,1,6,fc,fb,lcp) 39 : 39 : call mulAB(H66,dgt,trav6,6,6,6,1) 39 : call mulAB(H66,dgc,trav6b,6,6,6,1) 40 : 40 : call mulAB(B1,trav6,dsiglt,6,6,6,1) 40 : call mulAB(B1,trav6b,dsiglc,6,6,6,1) 41 : 42 : do iloc=1,6 43 : dsiglt(iloc) = -dsiglt(iloc) 44 : dsiglc(iloc) = -dsiglc(iloc) 45 : enddo 46 : 47 : RETURN 48 : END 49 :
© Cast3M 2003 - All rights reserved.
Disclaimer