rdscr1
C RDSCR1 SOURCE GOUNAND 25/06/11 21:15:09 12278 SUBROUTINE RDSCR1(IPT1,DES1,ISYM,IPT2,DES2) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : RDSCR1 C DESCRIPTION : C Quelquefois, les points de IPT1 (meleme simple) ne sont pas C tous references par le segment DES1 (cas des QUAFs notamment). C Dans ce cas, on fait une reduction de IPT1 et on le stocke dans C IPT2. Si les points sont tous references IPT2=IPT1. C C C C LANGAGE : ESOPE C AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) C mel : gounand@semt2.smts.cea.fr C*********************************************************************** C VERSION : v1, 22/05/2025, version initiale C HISTORIQUE : v1, 22/05/2025, creation C HISTORIQUE : C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMRIGID -INC SMELEME SEGMENT ICNN(NBNN) SEGMENT IBNN(NCNN) * * Executable statements * segact ipt1 nbnn=ipt1.num(/1) segini icnn ncnn=0 segact des1 nligrp=des1.noelep(/1) ncnn=0 do iligrp=1,nligrp if (icnn(des1.noelep(iligrp)).eq.0) then ncnn=ncnn+1 icnn(des1.noelep(iligrp))=1 endif enddo nligrd=des1.noeled(/1) if (isym.ge.2) then do iligrd=1,nligrd if (icnn(des1.noeled(iligrd)).eq.0) then icnn(des1.noeled(iligrd))=1 ncnn=ncnn+1 endif enddo endif * write(ioimp,*) 'ncnn,nbnn=',ncnn,nbnn if (ncnn.NE.nbnn) then segini ibnn ic=0 do ib=1,nbnn if (icnn(ib).ne.0) then ic=ic+1 ibnn(ic)=ib icnn(ib)=ic endif enddo nbnn=ncnn nbelem=ipt1.num(/2) nbref=0 nbsous=0 segini ipt2 ipt2.itypel=32 do ibelem=1,nbelem do ic=1,ncnn ipt2.num(ic,ibelem)=ipt1.num(ibnn(ic),ibelem) enddo enddo segini,des2 do iligrp=1,nligrp des2.lisinc(iligrp)=des1.lisinc(iligrp) des2.noelep(iligrp)=icnn(des1.noelep(iligrp)) enddo if (isym.ge.2) then do iligrd=1,nligrd des2.lisdua(iligrd)=des1.lisdua(iligrd) des2.noeled(iligrd)=icnn(des1.noeled(iligrd)) enddo else do iligrp=1,nligrp des2.lisdua(iligrp)=des1.lisdua(iligrp) des2.noeled(iligrp)=des2.noelep(iligrp) enddo endif segsup ibnn else ipt2=ipt1 des2=des1 endif segsup icnn * * Normal termination * RETURN * * Format handling * * * Error handling * * * End of subroutine RDSCR1 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales