transr
C TRANSR SOURCE GOUNAND 25/05/05 21:15:09 12259
* transfert des valeurs imposées dans le second membre (elimination de lignes)
*
*
* mchpo2 : entree = second membre complet
* ri4 : entree = matrice de relation
* mchpo1 : sortie = increment du second membre
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8 (A-H,O-Z)
* pour le moment en cas de mode de fourier on suppose qu'il n'y en
* n'a qu'un
-INC PPARAM
-INC CCOPTIO
-INC SMCHPOI
-INC SMRIGID
-INC SMCOORD
-INC SMELEME
segment trav
real*8 val(nbnn)
endsegment
* exploser les flx
nbnn=nbpts
segini trav
segact mchpo2
do 10 isoupo=1,mchpo2.ipchp(/1)
msoupo=mchpo2.ipchp(isoupo)
segact msoupo
meleme=igeoc
segact meleme
do 20 ic=1,nocomp(/2)
if (nocomp(ic).eq.'FLX ') goto 30
20 continue
goto 10
30 continue
mpoval=ipoval
segact mpoval
do 40 in=1,num(/2)
val(num(1,in))=vpocha(in,ic)
40 continue
10 continue
* on balaye les raideurs de dependances, on remplit le chpoin cible
segact ri4
nat=2
nsoupo=0
segini mchpo1
mchpo1.mochde='créé par transr'
mchpo1.ifopoi=mchpo2.ifopoi
if (mchpo2.ifopoi .ne. ri4.iforig) then
moterr(1:8)='CHPO-RIG'
interr(1)=mchpo2.ifopoi
interr(2)=ri4.iforig
interr(3)=ifour
c-dbg write(ioimp,*) '1132 transr',mchpo2,ri4
mchpo1.ifopoi=ifour
end if
mchpo1.jattri(1)=2
if (ri4.irigel(/1).lt.8) return
do 100 irig=1,ri4.irigel(/2)
if (ri4.irigel(8,irig).ne.0) then
descr=ri4.irigel(3,irig)
meleme=ri4.irigel(1,irig)
Xmatri=ri4.irigel(4,irig)
segact descr,meleme,Xmatri
do 110 iligrp=1,lisinc(/2)
if (lisinc(iligrp).eq.'LX ') goto 120
110 continue
goto 100
120 continue
segact meleme
* on a un lx a transferer
nsoupo=nsoupo+1
segadj mchpo1
nc=1
segini msoupo
n=num(/2)
nbnn=1
nbelem=n
nbref=0
nbsous=0
segini ipt1
ipt1.itypel=1
igeoc=ipt1
nocomp(1)=lisinc(2)
noharm(1)=ri4.irigel(5,irig)
mchpo1.ipchp(nsoupo)=msoupo
segini mpoval
ipoval=mpoval
do 130 i=1,n
ip=num(noelep(2),i)
ipt1.num(1,i)=ip
ip1=num(noelep(1),i)
vpocha(i,1)=val(ip1)/(re(1,2,i)*ri4.coerig(irig))
130 continue
segdes descr,meleme,xmatri
endif
100 continue
segsup trav
* toilettage de mchpo1
end
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales