repico
C REPICO SOURCE CB215821 20/11/25 13:39:01 10792 $ ICOGLO,ICPRIB,ICDUAB,ICPRIC,ICDUAC,ICPRID, $ IMPR,IRET) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : REPICO C DESCRIPTION : Repérage global des inconnues : ICOGLO (LISTMOTS) C Noms des inconnues primales et duales de B et C exprimées C dans ce repérage : IC{PRI,DUA}{B,C} C (Eventuellement, si CHPOD.NE.0) : C Noms des inconnues de CHPOD dans ce repérage 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 : CUNIQ, CREPER C APPELES (E/S) : ECRCHA, ECROBJ C APPELE PAR : PROMAT C*********************************************************************** C ENTREES : IMATB, IMATC, CHPOD C SORTIES : ICOGLO, ICPRIB, ICDUAB, ICPRIC, ICDUAC, ICPRID C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 28/01/2000, version initiale C HISTORIQUE : v1, 28/01/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 SMLMOTS INTEGER JGN,JGM POINTEUR ICOGLO.MLMOTS POINTEUR GPINCS.MLMOTS POINTEUR MLPRID.MLMOTS -INC SMLENTI INTEGER JG POINTEUR ICPRIB.MLENTI POINTEUR ICDUAB.MLENTI POINTEUR ICPRIC.MLENTI POINTEUR ICDUAC.MLENTI POINTEUR ICPRID.MLENTI -INC SMCHPOI POINTEUR CHPOD.MCHPOI -INC SMMATRIK POINTEUR IMATB.IMATRI POINTEUR IMATC.IMATRI * INTEGER IMPR,IRET * INTEGER LNMOTS PARAMETER (LNMOTS=8) * INTEGER NBMB,NBMC,NBMD,NIPRID,NIUNIQ INTEGER IBMB,IBMC,IBMD,IIPRID,IINC * * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans repico.eso' * Enumération de tous les noms d'inconnues * Extraction éventuelles des composantes du chpoint * avec modif. pour qu'ils fassent 8 lettres IF (CHPOD.NE.0) THEN CALL EXTRAI IF (IRET.EQ.0) THEN WRITE(IOIMP,*) 'erreur extraction des composantes chpod' GOTO 9999 ENDIF SEGACT MLPRID*MOD JGN=LNMOTS JGM=NIPRID SEGADJ,MLPRID DO 1 IIPRID=1,NIPRID 1 CONTINUE ELSE MLPRID=0 ENDIF SEGACT IMATB SEGACT IMATC JGN=LNMOTS JGM=2*(NBMB+NBMC) IF (MLPRID.NE.0) THEN JGM=JGM+NBMD ENDIF * SEGINI GPINCS IINC=0 DO 2 IBMB=1,NBMB IINC=IINC+1 2 CONTINUE DO 3 IBMC=1,NBMC IINC=IINC+1 3 CONTINUE DO 4 IBMB=1,NBMB IINC=IINC+1 4 CONTINUE DO 5 IBMC=1,NBMC IINC=IINC+1 5 CONTINUE IF (MLPRID.NE.0) THEN DO 6 IBMD=1,NBMD IINC=IINC+1 6 CONTINUE ENDIF * Elimination des doublons dans les noms JGN=LNMOTS JGM=IINC SEGINI ICOGLO $ ICOGLO.MOTS,NIUNIQ, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 JGN=LNMOTS JGM=NIUNIQ SEGADJ,ICOGLO SEGSUP GPINCS * Noms des inconnues primales et duales de B et C exprimées * dans le repérage défini par ICOGLO : IC{PRI,DUA}{B,C} JG=NBMB SEGINI ICPRIB $ ICPRIB.LECT, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES ICPRIB JG=NBMB SEGINI ICDUAB $ IMATB.LISDUA,ICOGLO.MOTS, $ ICDUAB.LECT, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES ICDUAB JG=NBMC SEGINI ICPRIC $ ICPRIC.LECT, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES ICPRIC JG=NBMC SEGINI ICDUAC $ IMATC.LISDUA,ICOGLO.MOTS, $ ICDUAC.LECT, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES ICDUAC IF (MLPRID.NE.0) THEN JG=NBMD SEGINI ICPRID $ ICPRID.LECT, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES ICPRID SEGSUP MLPRID ELSE ICPRID=0 ENDIF SEGDES ICOGLO SEGDES IMATC SEGDES IMATB * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine repico' RETURN * * End of subroutine REPICO * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales