C INQRPY SOURCE CHAT 07/10/29 21:20:58 5940 SUBROUTINE INQRPY(MYQRFS,IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : INQRPY C PROJET : Noyau linéaire NLIN C DESCRIPTION : 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 : C*********************************************************************** C ENTREES : - C ENTREES/SORTIES : C SORTIES : - C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 01/08/06, version initiale C HISTORIQUE : v1, 01/08/06, 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 CCOPTIO -INC CCGEOME CBEGININCLUDE SIQUAF SEGMENT IQUAF INTEGER NUMQUF REAL*8 XCONQR(NDIMQR,NBNOQR) INTEGER NUCENT POINTEUR LFACE.MELEME ENDSEGMENT SEGMENT IQUAFS POINTEUR LISQRF(NBQRF).IQUAF ENDSEGMENT CENDINCLUDE SIQUAF POINTEUR MYQRFS.IQUAFS POINTEUR QRCOUR.IQUAF INTEGER NDIMQR,NBNOQR -INC SMELEME POINTEUR MYMEL.MELEME POINTEUR SOUMEL.MELEME INTEGER NBNN,NBELEM,NBSOUS,NBREF * INTEGER IMPR,IRET REAL*8 ZERO,UN,UNS3,UNS2,UNS4 * PARAMETER (ZERO=0.D0,UN=1.D0,UNS3=1.D0/3.D0,UNS2=1.D0/2.D0) PARAMETER (UNS5=1.D0/5.D0) * INTEGER NUMER * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inqrpy' * * Elément QUAF PY19 * NDIMQR=3 NBNOQR=19 SEGINI QRCOUR * Numéro de l'élément géométrique dans NOMS * NOMS(1:NOMBR) sont les noms des types d'éléments géométriques, * cf. include CCGEOME CALL FICH4('PY19',NOMS,NOMBR, $ NUMER, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 QRCOUR.NUMQUF=NUMER * * Coordonnées des noeuds du QUAF de référence * QRCOUR.XCONQR(1,1)=UN QRCOUR.XCONQR(2,1)=ZERO QRCOUR.XCONQR(3,1)=ZERO QRCOUR.XCONQR(1,2)=UNS2 QRCOUR.XCONQR(2,2)=UNS2 QRCOUR.XCONQR(3,2)=ZERO QRCOUR.XCONQR(1,3)=ZERO QRCOUR.XCONQR(2,3)=UN QRCOUR.XCONQR(3,3)=ZERO QRCOUR.XCONQR(1,4)=-UNS2 QRCOUR.XCONQR(2,4)=UNS2 QRCOUR.XCONQR(3,4)=ZERO QRCOUR.XCONQR(1,5)=-UN QRCOUR.XCONQR(2,5)=ZERO QRCOUR.XCONQR(3,5)=ZERO QRCOUR.XCONQR(1,6)=-UNS2 QRCOUR.XCONQR(2,6)=-UNS2 QRCOUR.XCONQR(3,6)=ZERO QRCOUR.XCONQR(1,7)=ZERO QRCOUR.XCONQR(2,7)=-UN QRCOUR.XCONQR(3,7)=ZERO QRCOUR.XCONQR(1,8)=UNS2 QRCOUR.XCONQR(2,8)=-UNS2 QRCOUR.XCONQR(3,8)=ZERO * QRCOUR.XCONQR(1,9)=UNS2 QRCOUR.XCONQR(2,9)=ZERO QRCOUR.XCONQR(3,9)=UNS2 QRCOUR.XCONQR(1,10)=ZERO QRCOUR.XCONQR(2,10)=UNS2 QRCOUR.XCONQR(3,10)=UNS2 QRCOUR.XCONQR(1,11)=-UNS2 QRCOUR.XCONQR(2,11)=ZERO QRCOUR.XCONQR(3,11)=UNS2 QRCOUR.XCONQR(1,12)=ZERO QRCOUR.XCONQR(2,12)=-UNS2 QRCOUR.XCONQR(3,12)=ZERO * QRCOUR.XCONQR(1,13)=ZERO QRCOUR.XCONQR(2,13)=ZERO QRCOUR.XCONQR(3,13)=UN QRCOUR.XCONQR(1,14)=ZERO QRCOUR.XCONQR(2,14)=ZERO QRCOUR.XCONQR(3,14)=ZERO * QRCOUR.XCONQR(1,15)=UNS3 QRCOUR.XCONQR(2,15)=UNS3 QRCOUR.XCONQR(3,15)=UNS3 QRCOUR.XCONQR(1,16)=-UNS3 QRCOUR.XCONQR(2,16)=UNS3 QRCOUR.XCONQR(3,16)=UNS3 QRCOUR.XCONQR(1,17)=-UNS3 QRCOUR.XCONQR(2,17)=-UNS3 QRCOUR.XCONQR(3,17)=UNS3 QRCOUR.XCONQR(1,18)=UNS3 QRCOUR.XCONQR(2,18)=-UNS3 QRCOUR.XCONQR(3,18)=UNS3 * QRCOUR.XCONQR(1,19)=ZERO QRCOUR.XCONQR(2,19)=ZERO QRCOUR.XCONQR(3,19)=UNS5 * * Numero du centre * QRCOUR.NUCENT=19 * * Faces du PY19 : 1 QUA9 + 4 TRI7 * * Chapeau NBNN=0 NBELEM=0 NBSOUS=2 NBREF=0 SEGINI MYMEL * Face QUA9 NBNN=9 NBELEM=1 NBSOUS=0 NBREF=0 SEGINI SOUMEL CALL FICH4('QUA9',NOMS,NOMBR, $ NUMER, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SOUMEL.ITYPEL=NUMER * Face 1 SOUMEL.NUM(1,1)=1 SOUMEL.NUM(2,1)=2 SOUMEL.NUM(3,1)=3 SOUMEL.NUM(4,1)=4 SOUMEL.NUM(5,1)=5 SOUMEL.NUM(6,1)=6 SOUMEL.NUM(7,1)=7 SOUMEL.NUM(8,1)=8 SOUMEL.NUM(9,1)=14 * SEGDES SOUMEL MYMEL.LISOUS(1)=SOUMEL * 4 Faces TRI7 NBNN=7 NBELEM=4 NBSOUS=0 NBREF=0 SEGINI SOUMEL CALL FICH4('TRI7',NOMS,NOMBR, $ NUMER, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SOUMEL.ITYPEL=NUMER * Face 1 SOUMEL.NUM(1,1)=1 SOUMEL.NUM(2,1)=2 SOUMEL.NUM(3,1)=3 SOUMEL.NUM(4,1)=10 SOUMEL.NUM(5,1)=13 SOUMEL.NUM(6,1)=9 SOUMEL.NUM(7,1)=15 * Face 2 SOUMEL.NUM(1,2)=3 SOUMEL.NUM(2,2)=4 SOUMEL.NUM(3,2)=5 SOUMEL.NUM(4,2)=11 SOUMEL.NUM(5,2)=13 SOUMEL.NUM(6,2)=10 SOUMEL.NUM(7,2)=16 * Face 3 SOUMEL.NUM(1,3)=5 SOUMEL.NUM(2,3)=6 SOUMEL.NUM(3,3)=7 SOUMEL.NUM(4,3)=12 SOUMEL.NUM(5,3)=13 SOUMEL.NUM(6,3)=11 SOUMEL.NUM(7,3)=17 * Face 4 SOUMEL.NUM(1,4)=7 SOUMEL.NUM(2,4)=8 SOUMEL.NUM(3,4)=1 SOUMEL.NUM(4,4)=9 SOUMEL.NUM(5,4)=13 SOUMEL.NUM(6,4)=12 SOUMEL.NUM(7,4)=18 * SEGDES SOUMEL MYMEL.LISOUS(2)=SOUMEL SEGDES MYMEL QRCOUR.LFACE=MYMEL SEGDES QRCOUR MYQRFS.LISQRF(**)=QRCOUR * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine inqrpy' RETURN * * End of subroutine INQRPY * END