pmat
C PMAT SOURCE CB215821 20/11/25 13:35:55 10792 subroutine pmat IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) * * création des matrices de bloquage pour le changement de phase * ces matrices sont de type 2 et des flx a mettre en face * * en entrée : objet modele -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMMODEL -INC SMRIGID -INC SMCOORD -INC SMCHPOI -INC SMCHAML segment icpr(nbpts) segment icpr1(nbpts) segment icpr2(nbpts) segment icpr3(nbpts) segment itvr real*8 tvr(IB) endsegment segment ide(ib) if(ierr.ne.0) return segact mmodel nbsou=kmodel(/1) nrigel=nbsou nrige=8 segini mrigid,icpr,icpr1,icpr2,icpr3 mtymat='BLO_PHAS' ib=0 do 100 i=1,nbsou imodel=kmodel(i) segact imodel meleme=imamod segact meleme do 101 mel=1,num(/2) do 101 npo=1,num(/1) ia = num(npo,mel) if(icpr(ia).eq.0) then ib=ib+1 icpr(ia)=ib endif 101 continue segdes meleme 100 continue nbsous=0 nbref=0 nbnn=1 nbelem=ib * write(6,*) 'nbelem nbnn nbref nbsous',nbelem,nbnn,nbref,nbsous segini ipt4 * boucle sur les sous zones du model pour creer les matrices de * blocages idd=0 do 1 i=1,nbsou imodel=kmodel(i) meleme=imamod segact ipt2 * remplissage d'une matrice et des objets rigidite nelrig=ipt2.num(/2) segdes ipt2 irigel(1,i) = ipt2 irigel(5,i)=nifour coerig(i)=1.d0 irigel(6,i)=2 nligrp=2 nligrd=2 segini descr irigel(3,i)=descr lisinc(1)='LX' lisinc(2)='T' lisdua(1)='FLX' lisdua(2)='Q' noelep(1)=1 noelep(2)=2 noeled(1)=1 noeled(2)=2 segdes descr segini xmatri do iou=1,nelrig re(1,1,iou)= 0.D0 re(1,2,iou)=1.D0 re(2,1,iou)=1.D0 re(2,2,iou)=0.D0 enddo segdes xmatri * segini imatri irigel(4,i)=xmatri * do 3 j=1,nelrig * 3 imattt(j)=xmatri segdes xmatri,imodel 1 continue segdes mrigid,mmodel end
© Cast3M 2003 - Tous droits réservés.
Mentions légales