relr1d
C RELR1D SOURCE GOUNAND 12/07/23 21:15:06 7441 $ MINCD,KRSPGD,KRINCD, $ COEF,MEL,DES,XMAT, $ PROFM, $ VALM, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : RELR1D C DESCRIPTION : * Compléter les valeurs de la matrice morse avec celles * de XMAT C C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : C APPELES (E/S) : C APPELES (BLAS) : C APPELES (CALCUL) : C APPELE PAR : RELR14 C*********************************************************************** C SYNTAXE GIBIANE : C ENTREES : C ENTREES/SORTIES : C SORTIES : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 01/07/2003, version initiale C HISTORIQUE : v1, 01/07/2003, 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 SMRIGID POINTEUR DES.DESCR * POINTEUR IMAT.IMATRI POINTEUR XMAT.XMATRI -INC SMELEME POINTEUR MEL.MELEME * Includes persos CBEGININCLUDE SMMINC SEGMENT MINC INTEGER NPOS(NPT+1) INTEGER MPOS(NPT,NBI+1) ENDSEGMENT SEGMENT IMINC INTEGER LNUPO (NDDL) INTEGER LNUINC(NDDL) ENDSEGMENT CENDINCLUDE SMMINC POINTEUR MINCP.MINC POINTEUR MINCD.MINC CBEGININCLUDE SMPMORS SEGMENT PMORS INTEGER IA (NTT+1) INTEGER JA (NJA) ENDSEGMENT CENDINCLUDE SMPMORS POINTEUR PROFM.PMORS CBEGININCLUDE SMIZA SEGMENT IZA REAL*8 A(NBVA) ENDSEGMENT CENDINCLUDE SMIZA POINTEUR VALM.IZA * -INC SMLENTI POINTEUR KJSPGP.MLENTI POINTEUR KJSPGD.MLENTI POINTEUR KRSPGP.MLENTI POINTEUR KRSPGD.MLENTI POINTEUR KRINCP.MLENTI POINTEUR KRINCD.MLENTI * INTEGER IMPR,IRET * * Executable statements * IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans relr1d.eso' NEL=MEL.NUM(/2) * NEL2=IMAT.IMATTT(/1) NEL2=XMAT.RE(/3) IF (NEL.NE.NEL2) THEN WRITE(IOIMP,*) 'Erreur grave no1' GOTO 9999 ENDIF NLIGRP=DES.NOELEP(/1) NLIGRD=DES.NOELED(/1) DO IEL=1,NEL * XMAT=IMAT.IMATTT(IEL) * SEGACT XMAT DO ILIGRD=1,NLIGRD IPODU=KRSPGD.LECT(MEL.NUM(DES.NOELED(ILIGRD),IEL)) IINCDU=KRINCD.LECT(ILIGRD) IPOSDU=MINCD.MPOS(IPODU,IINCDU) IF (IPOSDU.EQ.0) THEN WRITE(IOIMP,*) 'Erreur grave no1' GOTO 9999 ENDIF IDDLDU=MINCD.NPOS(IPODU)+IPOSDU-1 DO ILIGRP=1,NLIGRP IPOPR=KRSPGP.LECT(MEL.NUM(DES.NOELEP(ILIGRP),IEL)) IINCPR=KRINCP.LECT(ILIGRP) IPOSPR=MINCP.MPOS(IPOPR,IINCPR) IF (IPOSPR.EQ.0) THEN WRITE(IOIMP,*) 'Erreur grave no2' GOTO 9999 ENDIF IDDLPR=MINCP.NPOS(IPOPR)+IPOSPR-1 IBVA=PROFM.IA(IDDLDU) LBVA=PROFM.IA(IDDLDU+1)-IBVA * A quel index du profil morse trouve-t-on le ddl IDDLPR ? $ JBVA, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 VALM.A(IBVA+JBVA-1)= $ VALM.A(IBVA+JBVA-1)+ $ (COEF*XMAT.RE(ILIGRD,ILIGRP,IEL)) ENDDO ENDDO * WRITE(IOIMP,*) 'IEL=',IEL * CALL ECMORS(PROFM,VALM,3) * SEGDES XMAT ENDDO * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine relr1d' RETURN * * End of subroutine RELR1D * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales