1 : C IREPER SOURCE CHAT 05/01/13 00:43:49 5004 2 : SUBROUTINE IREPER(LNINT,LNREP, 3 : $ LISINT,LISREP, 4 : $ KRINRE, 5 : $ IMPR,IRET) 6 : IMPLICIT INTEGER(I-N) 7 : IMPLICIT REAL*8 (A-H,O-Z) 8 : C*********************************************************************** 9 : C NOM : IREPER 10 : C PROJET : Noyau linéaire NLIN 11 : C DESCRIPTION : 12 : C 13 : C On construit KRINRE, liste d'entier de repérage des 14 : C entiers stockés dans LISINT, par rapport 15 : C aux entiers (supposées sans doublons) 16 : C de LISREP. 17 : C 18 : C Exemple : LISINC = 1 7 9 7 19 : C LISREP = 1 3 7 9 12 20 : C KRINRE = 1 3 4 3 21 : C 22 : C LANGAGE : FORTRAN 77 (sauf E/S) 23 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 24 : C mél : gounand@semt2.smts.cea.fr 25 : C*********************************************************************** 26 : C APPELE PAR : CORINC 27 : C*********************************************************************** 28 : C ENTREES : LNINT, LNREP, LISINT, LISREP 29 : C SORTIES : KRINRE 30 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 31 : C*********************************************************************** 32 : C VERSION : v1, 17/11/99, version initiale 33 : C HISTORIQUE : v1, 17/11/99, création 34 : C HISTORIQUE : 35 : C HISTORIQUE : 36 : C*********************************************************************** 37 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 38 : C en cas de modification de ce sous-programme afin de faciliter 39 : C la maintenance ! 40 : C*********************************************************************** 41 : -INC CCOPTIO 42 : INTEGER LNINT,LNREP 43 : INTEGER LISINT(LNINT) 44 : INTEGER LISREP(LNREP) 45 : * 46 : INTEGER KRINRE(LNINT) 47 : * 48 : INTEGER IMPR,IRET 49 : * 50 : LOGICAL LFOUND 51 : INTEGER IINT,IREP 52 : * 53 : * Executable statements 54 : * 55 : IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans ireper' 56 : * 57 : DO 1 IINT=1,LNINT 58 : LFOUND=.FALSE. 59 : IREP=0 60 : 12 CONTINUE 61 : IREP=IREP+1 62 : IF (LISINT(IINT).EQ.LISREP(IREP)) THEN 63 : LFOUND=.TRUE. 64 : ELSE 65 : IF (IREP.LT.LNREP) THEN 66 : GOTO 12 67 : ENDIF 68 : ENDIF 69 : IF (.NOT.LFOUND) THEN 70 : WRITE(IOIMP,*) 'Un élément de LISINT n''est pas dans LISREP' 71 : GOTO 9999 72 : ELSE 73 : KRINRE(IINT)=IREP 74 : ENDIF 75 : 1 CONTINUE 76 : * 77 : * Normal termination 78 : * 79 : IRET=0 80 : RETURN 81 : * 82 : * Format handling 83 : * 84 : * 85 : * Error handling 86 : * 87 : 9999 CONTINUE 88 : IRET=1 89 : WRITE(IOIMP,*) 'An error was detected in subroutine ireper' 90 : RETURN 91 : * 92 : * End of subroutine IREPER 93 : * 94 : END 95 : 96 : 97 :
© Cast3M 2003 - All rights reserved.
Disclaimer