rempl2
C REMPL2 SOURCE JC220346 12/05/15 21:15:03 7370 ************************************************************************ * * R E M P L 2 * ----------- * * FONCTION: * --------- * * REMPLACER LE I-EME ELEMENT D'UN OBJET DE TYPE "LISTENTI". * * MODE D'APPEL: * ------------- * * CALL REMPL2 (IPOINT,IEME,INTEGR) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPOINT ENTIER (E) POINTEUR DE L'OBJET DE TYPE "LISTENTI". * IEME ENTIER (E) NUMERO D'ORDRE DE L'ELEMENT A REMPLACER * DANS L'OBJET DE TYPE "LISTENTI". * INTEGR ENTIER (E) ELEMENT REMPLACANT. * IPLISE ENTIER (E) POINTEUR VERS UN "LISTENTI" DE REMPLACANTS * IPOS ENTIER (E) SI NEGATIF, IEME EST UN POINTEUR "LISTENTI" * * SOUS-PROGRAMMES APPELES: * ------------------------ * * ERREUR * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 5 DECEMBRE 1984 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC SMLENTI * MLENTI=IPOINT SEGACT,MLENTI*MOD * * Y a-t-il plusieurs remplacements a faire ? NBRMPL=1 IF (IPOS.LT.0) THEN MLENT1=IEME SEGACT,MLENT1 NBRMPL=MLENT1.LECT(/1) * * Y a-t-il des valeurs de remplacement distinctes ? IF (IPLISE.NE.0) THEN MLENT2=IPLISE SEGACT,MLENT2 IF (MLENT2.LECT(/1).NE.NBRMPL) THEN MOTERR(1:8)='LISTENTI' RETURN ENDIF ENDIF ENDIF * * Mise a jour du LISTENTI DO II=1,NBRMPL IF (IPOS.LT.0) IEME=MLENT1.LECT(II) IF (IPLISE.NE.0) INTEGR=MLENT2.LECT(II) IF (0.LT.IEME.AND.IEME.LE.LECT(/1)) THEN LECT(IEME)=INTEGR ELSE INTERR(1)=IEME ENDIF ENDDO * SEGDES,MLENTI IF (IPOS.LT.0) SEGDES,MLENT1 IF (IPLISE.NE.0) SEGDES,MLENT2 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales