C Rutina 065 C-----------------------------------------------------------------EIJ_POTENCIAL--- C C SUBRUTINA EIJ_POT C C CALCULO DE LA MATRIZ Eij A PARTIR DE LAS MATRICES CLASICAS C Aij, Bij, Cij C POTENCIAL 2D C SUBROUTINE MAT_Eij_POT(PCelt,S,Eij,Aij,Bij,Cij,celt) C IMPLICIT NONE INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PCelt : Elemento al que pertenece el PC INTEGER PCelt C Eij : Matrices de constantes de integracion del elemento RECORD /S_matriz_Eij/ Eij C Aij,Bij,Cij : Matrices clasicas de constantes de integracion REAL*8 Aij(1,2),Bij(1,2),Cij(1,1) C CELT : Elemento en que estamos integrando INTEGER celt C S : Coordenada local del punto de colocacion REAL*8 S C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES LOCALES CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C INTEGER JJ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VALORES INICIALES CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CALC. CONST. INTEGRACION CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CALCULO DE Eij C c DO jj=1,2 c Eij.Aij(1,jj)=Aij(1,jj) c Eij.Bij(1,jj)=Bij(1,jj) c END DO C c IF(PCelt.NE.celt) THEN C C P.C. no pertenece al elemento C Eij.Eij(1,1)=Aij(1,1) Eij.Eij(1,2)=Aij(1,2) Eij.Eij(1,3)=-Bij(1,1) Eij.Eij(1,4)=-Bij(1,2) ELSE C C P.C. pertenece al elemento C Eij.Eij(1,1)=Aij(1,1)+Cij(1,1)*(1.d0-S)/2.d0 Eij.Eij(1,2)=Aij(1,2)+Cij(1,1)*(S+1.d0)/2.d0 Eij.Eij(1,3)=-Bij(1,1) Eij.Eij(1,4)=-Bij(1,2) END IF C C ESCRITURA EN LA BASE DE DATOS C IF(W_D.GE.1) THEN WRITE(F_D,*) 'Aij: ' WRITE(F_D,01) (Aij(1,jj),jj=1,2) WRITE(F_D,*) 'Bij: ' WRITE(F_D,01) (Bij(1,jj),jj=1,2) www WRITE(F_D,*) 'Eij: ' www WRITE(F_D,02) ((Eij.Eij(ii,jj),jj=1,8),ii=1,2) 01 FORMAT(2x,e22.16,1x,e22.16) 02 FORMAT(2x,e22.16,1x,e22.16) END IF C C FIN DE LA RUTINA C RETURN C C FORMATOS DE ESCRITURA. C 06500 FORMAT(/,2x,'ERROR 06500 - MAT_EIJ_POT - Error Programa (#',i1,'#) @ ') C END C