C Rutina 060 C-------------------------------------------------------------MONTAJE_BIE--- C C SUBRUTINA MONTAJE_BIE C C MONTAJE DE LAS ECUACIONES INTEGRALES DE CONTORNO C SUBROUTINE MONTAJE_BIE(PRB,SOL,MAT,CNT,ELT,NOD,PC,SAij,SFi,SVT,SW) C IMPLICIT NONE INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C PRB : Variables globales del problema RECORD /S_problema/ PRB C SOL : Solidos del problema RECORD /S_solido/ SOL(N_MAX_SOL) C MAT : Materiales RECORD /S_material/ MAT(N_MAX_SOL) C CNT : Contornos del problema RECORD /S_contorno/ CNT(N_MAX_CNT) C ELT : Elementos del problema RECORD /S_elemento/ ELT(N_MAX_ELT) C NOD : Nodos del problema RECORD /S_nodo/ NOD(N_MAX_NOD) C PC : Elementos del problema RECORD /S_coloc/ PC(N_MAX_PC) C SAIJ(,) : Matriz del sistema. REAL*8 SAij(N_MAX_INC,N_MAX_INC) C SFi() : Termino independiente. REAL*8 SFi(N_MAX_INC) C SVT : Ecuación correspondiente a los apoyos puntuales REAL*8 SVT(3*N_MAX_SOL,N_MAX_INC) C SW : Proyeccion de los MSR sobre las incognitas REAL*8 SW(N_MAX_INC,3*N_MAX_SOL) C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES INTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C i,j,m,n,p,r : Contadores INTEGER i,j,k,m,n,q,r C CSOL,CCNT,CELTP,CELT,CPC,CEC : Contadores INTEGER CSOL,CCNT,CELTP,CELT,CPC,CEC C TP : Tipo de problema INTEGER TP C TI : Tipo de integracion INTEGER TI C NSOL : Numero de solidos INTEGER NSOL C xCCC x INTEGER II,JJ xCCC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VALORES INICIALES CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Modificado por: Diógenes Morales Sierra Fecha:27/08/05 C Objeto de la modificación: C Actualizar la matriz Aij, el vector SFi y las incognitas SXi C se ponen a 0 para poder resolver problemas iterativos I=0 DO WHILE(I.LE.N_MAX_INC-1) I=I+1 SFi(I)=0 SAij(I,1:N_MAX_INC)=0 END DO I=0 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC cec=0 C TP=PRB.TP.TIP TI=PRB.TI.TIP NSOL=PRB.NSOL DO i=1,NSOL DO j=1,SOL(i).NPC cpc=SOL(i).PC(j) DO m=1,SOL(i).NCNT ccnt=SOL(i).CNT(m) DO n=1,CNT(ccnt).NELT celt=CNT(ccnt).ELT(n) celtp=ELT(celt).TIP DO q=1,PRB.TP.DIM DO r=1 , PRB.ELTP(celtp).NVE PC(cpc).EIJ(celt).Eij(q,r)=0.d0 END DO END DO END DO END DO END DO END DO C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C MONTAJE ECUACIONES SOLIDO CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C BUCLE QUE RECORRE LOS SOLIDOS C DO i = 1 , NSOL csol=SOL(i).NUM C C BUCLE QUE RECORRE LOS PUNTOS DE COLOCACION DEL SOLIDO C DO j = 1 , SOL(csol).NPC cpc=SOL(csol).PC(j) C CALL PC_BIE(PRB,SOL(csol),MAT(csol),CNT,ELT,NOD,PC(cpc), @ SAij,SFi,cec) C C FIN BUCLE QUE RECORRE LOS PUNTOS DE COLOCACION DEL SOLIDO C END DO C C FIN BUCLE QUE RECORRE LOS SOLIDOS C END DO C C CONDICIONES DE SOLIDO RIGIDO C !apoyo C cec=0 DO i=1,PRB.NeBIE cec=cec+1 DO j=1,PRB.NINC DO k=1,PRB.NMSR SAij(cec,j)=SAij(cec,j)+SW(cec,k)*SVT(k,j) ENDDO END DO END DO C !apoyo C C FIN DE LA RUTINA C RETURN C C FORMATOS DE ESCRITURA. C END C