descar
C DESCAR SOURCE GOUNAND 25/06/11 21:15:07 12278 SUBROUTINE DESCAR(DES1,IPRI,DES3) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : DESCAR C DESCRIPTION : A partir d'un descripteur DES1 en entree, on construit C un descripteur carre, soit base sur les inconnues C primales (ipri=1), soit sur les inconnues duales (ipri=2) C Si le descripteur est deja carre, on le renvoie C C C LANGAGE : ESOPE C AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) C mel : gounand@semt2.smts.cea.fr C*********************************************************************** C ENTREES : DES1 IPRI C ENTREES/SORTIES : C SORTIES : DES3 C*********************************************************************** C VERSION : v1, 26/05/2025, version initiale C HISTORIQUE : v1, 26/05/2025, creation C HISTORIQUE : C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMRIGID logical lcar CHARACTER*(LOCHPO) NOMINC,NOMDUA * * Executable statements * nligrp=des1.noelep(/1) nligrd=des1.noeled(/1) if (nligrp.ne.nligrd) goto 13 do ilig=1,nligrp if (des1.noelep(ilig).ne.des1.noeled(ilig)) goto 13 enddo do ilig=1,nligrp nominc=des1.lisinc(ilig) IF (IPLA.EQ.0) THEN nomdua=nominc ELSE nomdua=nomdu(ipla) ENDIF if (des1.lisdua(ilig).ne.nomdua) goto 13 enddo * Carré des3=des1 return 13 CONTINUE * Pas carré if (ipri.eq.1) then nligrp=des1.noelep(/1) nligrd=nligrp segini des3 do iligrp=1,nligrp nno=des1.noelep(iligrp) des3.noelep(iligrp)=nno des3.noeled(iligrp)=nno nominc=des1.lisinc(iligrp) des3.lisinc(iligrp)=nominc IF (IPLA.EQ.0) THEN des3.lisdua(iligrp)=nominc ELSE des3.lisdua(iligrp)=nomdu(ipla) ENDIF enddo elseif (ipri.eq.2) then nligrd=des1.noeled(/1) nligrp=nligrd segini des3 do iligrd=1,nligrd nno=des1.noeled(iligrd) des3.noeled(iligrd)=nno des3.noelep(iligrd)=nno nomdua=des1.lisdua(iligrd) des3.lisdua(iligrd)=nomdua IF (IPLA.EQ.0) THEN des3.lisinc(iligrd)=nomdua ELSE des3.lisinc(iligrd)=nomdd(ipla) ENDIF enddo else write(ioimp,*) 'ipri=',ipri return endif * * Normal termination * RETURN * * Format handling * * * Error handling * * * End of subroutine DESCAR * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales