1 : C B2COQ2 SOURCE CHAT 05/01/12 21:31:09 5004 2 : SUBROUTINE B2COQ2(XSTRS,NSTRS,xddl,nbddl,xel,nbnn,t,p,igau) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : 6 : parameter(xzero=0.d0,demi=0.5d0,un=1.d0,deux=2.d0,trois=3.d0, 7 : + quatre=4.d0,six=6.d0) 8 : 9 : dimension xstrs(*),xddl(*),xel(3,*),t(*),p(*) 10 : dimension ddlloc(6),z(3,3) 11 : 12 : -INC CCOPTIO 13 : 14 : D=SQRT((XEL(1,2)-XEL(1,1))**2+(XEL(2,2)-XEL(2,1))**2) 15 : SP=(XEL(1,2)-XEL(1,1))/D 16 : CP=(XEL(2,2)-XEL(2,1))/D 17 : 18 : z(1,1)=sp 19 : z(1,2)=cp 20 : z(1,3)=xzero 21 : z(2,1)=-cp 22 : z(2,2)=sp 23 : z(2,3)=xzero 24 : z(3,1)=xzero 25 : z(3,2)=xzero 26 : z(3,3)=un 27 : 28 : do 100 i=1,3 29 : ddlloc(i )=xzero 30 : ddlloc(i+3)=xzero 31 : do 101 j=1,3 32 : ddlloc(i )=ddlloc(i )+z(i,j)*xddl(j ) 33 : ddlloc(i+3)=ddlloc(i+3)+z(i,j)*xddl(j+3) 34 : 101 continue 35 : 100 continue 36 : 37 : s=t(igau)*demi+demi 38 : 39 : dudx = xstrs(1) 40 : terme1=six*s*(s-un) 41 : dwdx = terme1*(ddlloc(2)-ddlloc(5))/D 42 : dwdx = dwdx + ddlloc(3)*(trois*s*s-quatre*s+un) 43 : + + ddlloc(6)*(trois*s*s-deux*s ) 44 : 45 : c ... on modifie ep_ss dans tous les cas : 46 : c PLAN GENE PLAN CONT PLAN DEFO 47 : if(ifour.eq.-3.or.ifour.eq.-2.or.ifour.eq.-1.or. 48 : c AXIS FOURIER N° 0 49 : & ifour.eq. 0.or.(ifour.eq.1.and.nifour.eq.0)) then 50 : xstrs(1)=xstrs(1)+demi*(dudx*dudx+dwdx*dwdx) 51 : endif 52 : 53 : c ... on modifie ep_theta_theta ou ep_zz en modes : 54 : c AXIS PLAN GENE FOURIER N° 0 55 : if(ifour.eq.0.or.ifour.eq.-3.or.(ifour.eq.1.and.nifour.eq.0)) then 56 : xstrs(2) = xstrs(2) + demi*xstrs(2)*xstrs(2) 57 : endif 58 : 59 : c ... on ne modifie pas de cisaillement ep_s_theta en mode Fourier 0, 60 : c car rien ne depend de theta, or ce terme contient les derivées par 61 : c rapport à theta ... 62 : 63 : RETURN 64 : END 65 : 66 : 67 :
© Cast3M 2003 - All rights reserved.
Disclaimer