prolrf
C PROLRF SOURCE GOUNAND 21/06/02 21:17:32 11022 $ ELCOUR, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : PROLRF C PROJET : Noyau linéaire NLIN C DESCRIPTION : Construit les coordonnées des noeuds d'éléments produits C (ex : prisme = triangle * segment) C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : - C APPELE PAR : INELPR, INELCU C*********************************************************************** C ENTREES : ELPRO1, ELPRO2 C ENTREES/SORTIES : ELCOUR (supposé actif en *MOD) C SORTIES : - C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 28/04/2000, version initiale C HISTORIQUE : v1, 28/04/2000, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC TNLIN *-INC SELREF POINTEUR ELCOUR.ELREF POINTEUR ELPRO1.ELREF POINTEUR ELPRO2.ELREF * INTEGER IMPR,IRET * INTEGER NBNOD1,NBNOD2,NBNODC INTEGER IBNOD1,IBNOD2,IBNODC INTEGER NDIML1,NDIML2,NDIMLC INTEGER IDIML1,IDIML2,IDIMLC * * Executable statements * IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans prolrf.eso' SEGACT ELPRO1 SEGACT ELPRO2 NDIML1=ELPRO1.XCONOD(/1) NBNOD1=ELPRO1.XCONOD(/2) NDIML2=ELPRO2.XCONOD(/1) NBNOD2=ELPRO2.XCONOD(/2) NDIMLC=ELCOUR.XCONOD(/1) NBNODC=ELCOUR.XCONOD(/2) IF ((NDIML1+NDIML2).NE.NDIMLC) THEN WRITE(IOIMP,*) 'Err. dim. esp.' GOTO 9999 ENDIF IF ((NBNOD1*NBNOD2).NE.NBNODC) THEN WRITE(IOIMP,*) 'Err. nb. noeud.' GOTO 9999 ENDIF IBNODC=0 DO 1 IBNOD2=1,NBNOD2 DO 12 IBNOD1=1,NBNOD1 IBNODC=IBNODC+1 IDIMLC=0 DO 122 IDIML1=1,NDIML1 IDIMLC=IDIMLC+1 ELCOUR.XCONOD(IDIMLC,IBNODC)= $ ELPRO1.XCONOD(IDIML1,IBNOD1) 122 CONTINUE DO 124 IDIML2=1,NDIML2 IDIMLC=IDIMLC+1 ELCOUR.XCONOD(IDIMLC,IBNODC)= $ ELPRO2.XCONOD(IDIML2,IBNOD2) 124 CONTINUE 12 CONTINUE 1 CONTINUE SEGDES ELPRO2 SEGDES ELPRO1 * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine prolrf' RETURN * * End of subroutine PROLRF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales