rempla
C REMPLA SOURCE BP208322 23/03/13 21:15:02 11627 SUBROUTINE REMPLA ************************************************************************ * * R E M P L A * ----------- * * SOUS-PROGRAMME ASSOCIE A LA DIRECTIVE "REMPLACER" * * FONCTION: * --------- * * REMPLACER UN ELEMENT D'UN OBJET (QUAND CELA A UN SENS). * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * REMPLACER OBJET RANG ELEM ; * * OPERANDES: * ---------- * * OBJET TYPE1 OBJET DONT ON REMPLACE UN ELEMENT. * RANG TYPE2 INDICE DE POSITION DE L'ELEMENT A REMPLACER * DE L'OBJET "OBJET". * ELEM TYPE3 OBJET REMPLACANT. * * SI TYPE1 = ... ALORS, TYPE2 = ... ET TYPE3 = ... * LISTREEL ENTIER FLOTTANT * LISTENTI ENTIER ENTIER * LISTMOTS ENTIER MOT * LISTCHPO ENTIER CHPOINT * * MODE DE FONCTIONNEMENT: * ----------------------- * * APPEL D'UN SOUS-PROGRAMME DISTINCT SELON LE TYPE DE L'OBJET * "OBJET". * * IPLIS1 CONTIENT UNE LISTE DE VALEURS DE REMPLACEMENT, SI FOURNIE * SINON, IPLIS3 VAUT ZERO * * IPOIN2 CONTIENT LA LISTE DES INDICES A REMPLACER, SI IPOS<0 * SINON, IPOIN2 CONTIENT UN SEUL INDICE * * SOUS-PROGRAMMES APPELES: * ------------------------ * * ERREUR, LIRE01, REMPL1, REMPL2, REMPL3, REMPL4, REMPL5 * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 5 DECEMBRE 1984 * MODIF LE 22 JANVIER 1988 * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO * REAL*8 REELDP CHARACTER*(LOCHAI) LEMOT CHARACTER*8 CTYP * * CAS PARTICULIER DU REMPLACEMENT DANS UN MOT * => LE/LES INDICES NE SONT PAS DES ENTIERS * => REMPLACER EST UN OPERATEUR PLUTOT QU'UNE DIRECTIVE IF (IRETOU.EQ.0) THEN RETURN ENDIF IF (CTYP.EQ.'MOT') THEN * REMPL5 LIT LES ARGUMENTS ET ECRIT LE RESULTAT DANS LA PILE CALL REMPL5 RETURN ENDIF * * ================================================================ * * IPOS<>0 => on autorise IPOIN2 a contenir un LISTENTI IPOS=1 IF (IERR.NE.0) RETURN * ICODE=1 IF (IPOS.LT.0) ICODE=0 IPLIS1=0 * * REMPLACEMENT(S) DANS UN LISTREEL IF (IABS(IPOS).EQ.1) THEN IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN ENDIF * * REMPLACEMENT(S) DANS UN LISTENTI ELSEIF (IABS(IPOS).EQ.2) THEN IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN ENDIF * * REMPLACEMENT(S) DANS UN LISTMOTS ELSEIF (IABS(IPOS).EQ.3) THEN IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN ENDIF * * REMPLACEMENT(S) DANS UN LISTCHPO ELSEIF (IABS(IPOS).EQ.4) THEN IF (IERR.NE.0) RETURN IF (IRETOU.EQ.0) THEN IF (IERR.NE.0) RETURN ENDIF * * ERREUR (ARGUMENT DE TYPE INCOMPATIBLE) ELSEIF (IPOS.NE.0) THEN ENDIF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales