Download b2coq2.eso

Back to the list

   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