Numérotation des lignes :

C D2ENDP    SOURCE    CB215821  16/04/21    21:16:13     8920       SUBROUTINE DER2_ENERELAS_DPRAL(X,E,NDIMX,NMODEL)      IMPLICIT INTEGER(I-N)      integer nmodel,i,ndimx,j      real*8 x(3),e(ndimx,ndimx),aux0,aux1,aux2,aux3,aux(3,3)      real*8                  you,xnu      common /elasdata/       you,xnu      real*8                  kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3      logical                 ogden      common /elasdata_ogden/ kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3,     .                        ogden       call zzero(e,ndimx*ndimx)      if (ogden) goto 10c Modelo cuadratico      aux0=you/((1.D0+xnu)*(1.D0-2.D0*xnu))      aux1=(1.D0-xnu)*aux0      aux2=xnu*aux0      aux3=you/(2.D0*(1.D0+xnu))      do i=1,3        E(i,i)=aux1      enddo      E(1,2)=aux2      E(1,3)=aux2      E(2,1)=aux2      E(2,3)=aux2      E(3,1)=aux2      E(3,2)=aux2      if (ndimx.eq.4) E(4,4)=1.D0c hacer desviador para VMT      if (nmodel.eq.8) goto 20      returnc Modelo ogden10    continue      do i=1,3       aux(i,1)=EXP(x(i))      enddo      e(1,1)=xmu*(xmu1*alp1*aux(1,1)**alp1+     .            xmu2*alp2*aux(1,1)**alp2+     .            xmu3*alp3*aux(1,1)**alp3)      e(2,2)=xmu*(xmu1*alp1*aux(2,1)**alp1+     .            xmu2*alp2*aux(2,1)**alp2+     .            xmu3*alp3*aux(2,1)**alp3)      e(3,3)=xmu*(xmu1*alp1*aux(3,1)**alp1+     .            xmu2*alp2*aux(3,1)**alp2+     .            xmu3*alp3*aux(3,1)**alp3)c     desviador de columnas20    continue      do i=1,3       call Desviador(e(1,i),aux(1,i),3)      enddoc     trasponer amat      aux1    =aux(1,2)      aux(1,2)=aux(2,1)      aux(2,1)=aux1      aux1    =aux(1,3)      aux(1,3)=aux(3,1)      aux(3,1)=aux1      aux1    =aux(2,3)      aux(2,3)=aux(3,2)      aux(3,2)=aux1c     desviador de columnas      do i=1,3       call Desviador(aux(1,i),e(1,i),3)      enddo      goto 100c Calculadas con derivacion, dan igual!      call zzero(e,ndimx*ndimx)      call der_enerelas_dpral(x,aux(1,1),nmodel)      do j=1,3        do i=1,3          aux(i,2)=x(i)        enddo        aux(j,3)=max(x(j)*1.D-6,1.D-8)        aux(j,2)=x(j)+aux(j,3)        call der_enerelas_dpral(aux(1,2),e(1,j),nmodel)        do i=1,3         e(i,j)=(e(i,j)-aux(i,1))/aux(j,3)        enddo      enddoc100   continue      if (ndimx.eq.4) E(4,4)=1.D0      return      end

© Cast3M 2003 - Tous droits réservés.
Mentions légales