Download dfsig.eso

Back to the list

   1 : C DFSIG     SOURCE    CHAT      05/01/12    22:48:18     5004           
   2 : C DFSIG     SOURCE    INSL       24/10/96    
   3 :       SUBROUTINE DFSIG(S1,DFSI,DGSI,SEQ,NSTRS,RB,AA,BB,DK1,DK2,ILO)
   4 : C
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8(A-H,O-Z)
   7 :       DIMENSION S1(NSTRS),DFSI(NSTRS),DGSI(NSTRS)
   8 :       DIMENSION DFS1(6),DGS1(6),C1(6),C2(6),C3P(6),C3(6)
   9 : C-------------------------------------------------------------------
  10 : C             *******************************************
  11 : C             *    CALCUL DU VECTEUR  {dF/d{SIGMA}}     *
  12 : C             *     {dF/d{SIGMA}}=A1*C1+A2*C2+A3*C3     *
  13 : C             *******************************************
  14 : C-------------------------------------------------------------------
  15 :       PI=4.D0*DATAN(1.D0)
  15 :       CALL ZERO(DFSI,NSTRS,1)
  15 :       CALL ZERO(DGSI,NSTRS,1)
  15 :       CALL ZERO(DFS1,6,1)
  15 :       CALL ZERO(DGSI,6,1)
  16 : C
  16 :       CALL PARINV(S1,SX,SY,SZ,SXY,SXZ,SYZ,NSTRS)
  16 :       CALL INVA(S1,DJ2,DI1,CO3T,DJ3,NSTRS)
  17 : C
  18 :       SSX=SX-DI1/3.D0
  19 :       SSY=SY-DI1/3.D0
  20 :       SSZ=SZ-DI1/3.D0
  21 : C
  22 : C-------------------------------------------------------------------
  23 : C             ************************************
  24 : C             *    CALCUL DES COEFFICIENTS Ai    *
  25 : C             *           A1=dF/dI1              *
  26 : C             *           A2=dF/dJ2              *
  27 : C             *           A3=dF/dCOS(3TETA)      *
  28 : C             *                                  *
  29 : C             *  f(Sij,K)= a*J2/f'cý+ ... -1=0   *
  30 : C             ************************************
  31 : C
  32 :       TT=DK2*CO3T
  33 :       IF(CO3T .GE. 0.D0) PP=DACOS(TT)/3.D0
  34 :       IF(CO3T .LT. 0.D0) PP=(PI-DACOS(-1.D0*TT))/3.D0
  35 : C
  36 :       DLA=DK1*DCOS(PP)
  37 :       T1=1.D0/DSQRT(1.D0-TT*TT)
  38 :       AP2=AA/SEQ/SEQ
  39 :       AP3=1.D0/DSQRT(DJ2)/SEQ/2.D0
  40 : C
  41 :       A1=BB/SEQ
  42 :       A2=AP2+AP3*(DLA-DK1*DSIN(PP)*TT*T1)
  43 :       A3=DK1*DK2*DSQRT(DJ2)*T1/3.D0/SEQ*DSIN(PP)
  44 : C
  45 : C-------------------------------------------------------------------
  46 : C             **********************************
  47 : C             *    CALCUL DES VECTEURS {Ci}    *
  48 : C             **********************************
  49 : C
  49 :       CALL ZERO(C1,6,1)
  49 :       CALL ZERO(C2,6,1)
  49 :       CALL ZERO(C3P,6,1)
  49 :       CALL ZERO(C3,6,1)
  50 : C
  51 :       C1(1)=1.D0
  52 :       C1(2)=1.D0
  53 :       C1(3)=1.D0
  54 : C
  55 :       C2(1)=SSX
  56 :       C2(2)=SSY
  57 :       C2(3)=SSZ
  58 :       C2(4)=2.D0*SXY
  59 :       C2(5)=2.D0*SXZ
  60 :       C2(6)=2.D0*SYZ
  61 : C
  62 :       SX1=2.D0*SSY*SSZ-SSX*SSZ-SSX*SSY
  63 :       SX2=SXZ*SXZ-2.D0*SYZ*SYZ+SXY*SXY
  64 : C
  65 :       SY1=2.D0*SSX*SSZ-SSY*SSZ-SSY*SSX
  66 :       SY2=SYZ*SYZ-2.D0*SXZ*SXZ+SXY*SXY
  67 : C
  68 :       SZ1=2.D0*SSX*SSY-SSZ*SSY-SSZ*SSX
  69 :       SZ2=SXZ*SXZ-2.D0*SXY*SXY+SYZ*SYZ
  70 : C
  71 :       C3P(1)=(SX1+SX2)/3.D0
  72 :       C3P(2)=(SY1+SY2)/3.D0
  73 :       C3P(3)=(SZ1+SZ2)/3.D0
  74 :       C3P(4)=2.D0*(SYZ*SXZ-SSZ*SXY)
  75 :       C3P(5)=2.D0*(SXY*SYZ-SSY*SXZ)
  76 :       C3P(6)=2.D0*(SXY*SXZ-SSX*SYZ)
  77 : C
  78 :       AA1=3.D0*DSQRT(3.D0)/2.D0/DSQRT(DJ2**3)
  79 :       AA2=-3.D0*DJ3/DJ2/2.D0
  80 : C-------------------------------------------------------------------
  81 :       DO 2 I=1,6
  82 :         C3(I)=AA1*(C3P(I)+AA2*C2(I))
  83 :         DFS1(I)=A1*C1(I)+A2*C2(I)+A3*C3(I)
  84 :     2 CONTINUE
  85 : C-------------------------------------------------------------------
  86 :       STEST=SEQ/RB
  87 :       IF(ILO.EQ.1) THEN
  88 : C             **************************************************
  89 : C             ***  ILO = 0 PLASTICITE ASSOCIEE (STANDARD)    ***
  90 : C             ***           G  =  F                          ***
  91 : C             ***  ILO = 1 PLASTICITE NON ASSOCIEE           ***
  92 : C             ***           G = A1 * I1 + SQRT(J2) - d        ***
  93 : C             **************************************************
  94 : C
  95 :         AAA1 =.57143D0*(STEST-1.D0)
  96 :         A1 =-0.2D0
  97 :         IF(AAA1 .GT. A1) A1=AAA1
  98 :         IF(STEST.GE.1.D0) A1=0.D0
  99 :         A2 =1.D0/DSQRT(DJ2)/2.D0
 100 :       ENDIF
 101 : C
 102 :       DO 3 I=1,6
 103 :         IF(ILO.EQ.0) DGS1(I)=DFS1(I)
 104 :         IF(ILO.EQ.1) DGS1(I)=A1*C1(I)+A2*C2(I)
 105 :     3 CONTINUE
 106 : C-------------------------------------------------------------------
 107 :       IF(NSTRS.EQ.3.OR.NSTRS.EQ.5) THEN
 108 :          DO 4 I=3,NSTRS
 109 :            DFS1(I)=DFS1(I+1)
 110 :            DGS1(I)=DGS1(I+1)
 111 :     4    CONTINUE
 112 :       ENDIF
 113 : C
 114 :       DO 5 I=1,NSTRS
 115 :          DFSI(I)=DFS1(I)
 116 :          DGSI(I)=DGS1(I)
 117 :     5 CONTINUE
 118 : C-------------------------------------------------------------------
 119 :       IECR=0
 120 :       IF(IECR.EQ.10) THEN
 121 :       WRITE(*,*) '****  ON EST DANS DFSIG ******'
 122 :       WRITE(*,200) A1,A2,A3,ILO
 123 :   200 FORMAT('A1=',E8.2,1X,'A2=',E8.2,1X,'A3=',E8.2,1X,'ILO=',I2)
 124 :       WRITE(*,*) '***  S1 DANS DFSIG ***  SEQ = ',SEQ
 125 :       WRITE(*,1991) (S1(IA),IA=1,NSTRS)
 126 :       WRITE(*,*) '***  C1 DANS DFSIG ***  '
 127 :       WRITE(*,1991) (C1(IA),IA=1,6)
 128 :       WRITE(*,*) '***  C2 DANS DFSIG ***  '
 129 :       WRITE(*,1991) (C2(IA),IA=1,6)
 130 :       WRITE(*,*) '***  C3 DANS DFSIG ***  '
 131 :       WRITE(*,1991) (C3(IA),IA=1,6)
 132 :       WRITE(*,*) '***  C3P DANS DFSIG ***  '
 133 :       WRITE(*,1991) (C3P(IA),IA=1,6)
 134 :       WRITE(*,*) '***  DFS1 ***  '
 135 :       WRITE(*,1991) (DFS1(IA),IA=1,6)
 136 :       WRITE(*,*) '***  DGS1 ***  '
 137 :       WRITE(*,1991) (DGS1(IA),IA=1,6)
 138 :       WRITE(*,*) '***  DFSI ***  NSTRS=',NSTRS
 139 :       WRITE(*,1991) (DFSI(IA),IA=1,NSTRS)
 140 :       WRITE(*,*) '***  DGSI ***  NSTRS=',NSTRS
 141 :       WRITE(*,1991) (DGSI(IA),IA=1,NSTRS)
 142 :       ENDIF
 143 : 1991  FORMAT(18(1X,E12.5))
 144 : C-------------------------------------------------------------------
 145 :   100 CONTINUE
 146 :       RETURN
 147 :       END
 148 :  
 149 :  

© Cast3M 2003 - All rights reserved.
Disclaimer