rdscrm
C RDSCRM SOURCE GOUNAND 24/11/12 21:15:09 12076 SUBROUTINE RDSCRM(MRIGID) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : RDSCRM C DESCRIPTION : Quelquefois, les points de IRIGEL(1,I) ne sont pas C tous references par le segment DESCR (cas des QUAFs notamment). C Dans ce cas, on fait une reduction du MELEME et on le stocke dans C IRIGEL(2,I) 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, 08/11/2024, version initiale C HISTORIQUE : v1, 08/11/2024, creation C HISTORIQUE : C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMRIGID -INC SMELEME SEGMENT ICNN(NBNN) SEGMENT IBNN(NCNN) * * Executable statements * SEGACT MRIGID*MOD NNVA=IRIGEL(/2) irmel=0 DO I=1,NNVA ipt1=irigel(1,i) segact ipt1 nbnn=ipt1.num(/1) segini icnn ncnn=0 descr=irigel(3,i) segact descr nligrp=noelep(/1) do iligrp=1,nligrp if (icnn(noelep(iligrp)).eq.0) then icnn(noelep(iligrp))=1 ncnn=ncnn+1 endif enddo if (irigel(7,i).ge.2) then nligrd=noeled(/1) do iligrd=1,nligrd if (icnn(noeled(iligrd)).eq.0) then icnn(noeled(iligrd))=1 ncnn=ncnn+1 endif enddo endif 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 endif enddo nbnn=ncnn nbelem=ipt1.num(/2) nbref=0 nbsous=0 segini ipt2 do ibelem=1,nbelem do ic=1,ncnn ipt2.num(ic,ibelem)=ipt1.num(ibnn(ic),ibelem) enddo enddo segsup ibnn irmel=irmel+1 else ipt2=0 endif segsup icnn IF (irigel(2,i).ne.0) then moterr(1:8)='rdscrm' return ELSE irigel(2,i)=ipt2 ENDIF ENDDO segact mrigid*nomod * * Normal termination * RETURN * * Format handling * * * Error handling * * * End of subroutine RDSCRM * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales