resmik
C RESMIK SOURCE PV 20/09/26 21:19:42 10724 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : RESMIK C DESCRIPTION : Restauration des pointeurs dans les objets C de type MATRIK. C (appelé par restpi.eso) C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C SYNTAXE GIBIANE : - C ENTREES : ICOLAC, chapeau sur les piles ITLACC C (une pour chaque type d'objets) C IDEB, IMAX1, indice de début et de fin C sur la pile d'objets MATRIK C ENTREES/SORTIES : ITLACC, la pile des objets MATRIK sur C lesquels on va restaurer des pointeurs C*********************************************************************** C VERSION : v1, 15/07/98, version initiale C HISTORIQUE : v1, 15/07/98, 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 SMMATRIK -INC TMCOLAC C C ************************* MATRIK ******************************** C Pile des MELEME ITLAC1=KCOLA(1) C Pile des CHPOINT ITLAC2=KCOLA(2) C Pile des MATRIK ITLAC3=KCOLA(43) DO 1 IEL=IDEB,IMAX1 MATRIK=ITLAC(IEL) IF (MATRIK.EQ.0) THEN WRITE(IOIMP,*) 'Failing to save a nil pointer' WRITE(IOIMP,*) 'MATRIK type object...' GOTO 9999 ENDIF SEGACT MATRIK*MOD NMATRI=IRIGEL(/2) DO 11 I=1,NMATRI IVA=ABS(IRIGEL(1,I)) IF (IVA.NE.0) IRIGEL(1,I)=ITLAC1.ITLAC(IVA) IVA=ABS(IRIGEL(2,I)) IF (IVA.NE.0) IRIGEL(2,I)=ITLAC1.ITLAC(IVA) IMATRI=IRIGEL(4,I) IF (IMATRI.NE.0) THEN SEGACT IMATRI*MOD IVA=ABS(KSPGP) IF (IVA.NE.0) KSPGP=ITLAC1.ITLAC(IVA) IVA=ABS(KSPGD) IF (IVA.NE.0) KSPGD=ITLAC1.ITLAC(IVA) SEGDES IMATRI ENDIF 11 CONTINUE IVA=ABS(KIZM) IF (IVA.NE.0) KIZM=ITLAC1.ITLAC(IVA) IVA=ABS(KISPGT) IF (IVA.NE.0) KISPGT=ITLAC1.ITLAC(IVA) IVA=ABS(KISPGP) IF (IVA.NE.0) KISPGP=ITLAC1.ITLAC(IVA) IVA=ABS(KISPGD) IF (IVA.NE.0) KISPGD=ITLAC1.ITLAC(IVA) IVA=ABS(KIDMAT(8)) IF (IVA.NE.0) KIDMAT(8)=ITLAC2.ITLAC(IVA) IVA=ABS(KKMMT(2)) IF (IVA.NE.0) KKMMT(2)=ITLAC3.ITLAC(IVA) IVA=ABS(KKMMT(3)) IF (IVA.NE.0) KKMMT(3)=ITLAC3.ITLAC(IVA) SEGDES MATRIK 1 CONTINUE * * Normal termination * RETURN * * Format handling * * * Error handling * 9999 CONTINUE WRITE(IOIMP,*) 'An error was detected in subroutine resmik' RETURN * * End of subroutine RESMIK * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales