program mef c----------------programa principal common /dados/ktri(200,3),mat(200),x(150),y(150),perm(10), * vi(10), nocc(10,20) common /matric/ss(150,150),vv(150),vdr(150) c----------------chama zero para colocacao a zero dos arranjos call zero c----------------chama entra para leitura de dados call entra(nno,nel,ncon) c----------------chama form para formacao da matriz ss call form(nel) c----------------chama cond para insercao de condicoes de contorno call condi(ncon,nno) c----------------chama elim para resolucao do sistema matricial call elim(nno) c----------------chama saida para impressao de resultados call saida(nno,nel) stop end c subroutine zero common /dados/ktri(200,3),mat(200),x(150),y(150),perm(10), * vi(10), nocc(10,20) common /matric/ss(150,150),vv(150),vdr(150) max1=150 max2=10 max3=20 do 1 i=1,max1 vv(i)=0. vdr(i)=0. do 1 j=1,max1 1 ss(i,j)=0. do 2 i=1,max2 do 2 j=1,max3 2 nocc(i,j)=0 return end c subroutine entra(nno,nel,ncon) common /dados/ktri(200,3),mat(200),x(150),y(150),perm(10), * vi(10), nocc(10,20) read(0,*)nno,nel,ncon,nmat c----------------leitura da formacao da malha do 1 i=1,nel 1 read(0,*)ktri(i,1),ktri(i,2),ktri(i,3),mat(i) c----------------leitura de coordenada dos nos do 2 i=1,nno 2 read(0,*)x(i),y(i) c----------------leitura de condicoes de contorno do 3 i=1, ncon read(0,*)vi(i) read(0,*)(nocc(i,j),j=1,20) 3 continue c----------------leitura das permissividades dos meios do 4 i=1,nmat 4 read(0,*)perm(i) return end c subroutine form(nel) common /dados/ktri(200,3),mat(200),x(150),y(150),perm(10), * vi(10), nocc(10,20) common /matric/ss(150,150),vv(150),vdr(150) dimension naux(3),s(3,3)