ooove1
C OOOVE1 SOURCE PV090527 26/04/24 08:23:26 12524 SUBROUTINE OOOVE1 (LRET,POINT) C---------------------------------------------------------------------- C C VERIFIER LE POINTEUR C C ->LRET 1 LE POINTEUR : A UNE VALEUR INVALIDE C 2 LE POINTEUR : OK C 3 LE POINTEUR : DESIGNE UN SEGMENT SUPPRIME C C PROGRAMMEUR : MOUGIN C CREE : 03/03/88 POUR LE JEUNE RIEUNIER C C----------------------------------------------------------------------- C C MSLSM NOMBRE DE MOTS MINI POUR UN SEGMENT C MSLZ1 NOMBRE DE MOTS DE CONTROLE EN DEBUT DE SEGMENT C MSLZ2 NOMBRE DE MOTS DE CONTROLE EN FIN DE SEGMENT C MDLDE NOMBRE DE MOTS POUR UN DESCRIPTEUR %INC IOOSGM %INC IOODES %INC IOOWCOM C PARAMETER ( MSLSM = 8 ) C PARAMETER ( MSLZ1 = 4 ) C PARAMETER ( MSLZ2 = 1 ) C PARAMETER ( MDLDE = 8 ) LOGICAL BOOL1 SEGMENT , POINT INTEGER BID1 ENDSEGMENT MACRO , JSG(I) = OOV(I) BOOL1 =.TRUE. C On saute l'ENTRY GOTO 1 C Cette ENTRY permet de ne pas verifier la queue de SUPPRESSION C Appel dans OOOSUQ qui ne doit pas verifier la queue ENTRY OOOVE2 (LRET,POINT) BOOL1 =.FALSE. 1 CONTINUE C--------------------------------------------------------------------- C C QUELQUES PARAMETRES C C ISMIN => JSG(ISMIN+1) : PREMIER MOT DU PREMIER SEGMENT C ISMAX => JSG(ISMAX+1) : PREMIER MOT DU DERNIER SEGMENT POSSIBLE C C ISDES => JSG(ISDES+1) : PREMIER MOT DU SEGMENT DES DESCRIPTEURS C LSDES = JSG(ISDES+1) : LONGUEUR DU SEGMENT DES DESCRIPTEURS C IDDES => OOA(OOT+IDDES) : PREMIER MOT DU DESCRIPTEUR C DU SEGMENT DES DESCRIPTEURS C IDMIN = VALEUR MINIMUM POUR UN POINTEUR C IDMAX = VALEUR MAXIMUM POUR UN POINTEUR LZA = JSG(OOA(1)+1) ISMIN = OOA(1)+ 2*MSLSM-MSLZ1+2*MSLSM ISMAX = OOA(1)+LZA-MSLSM-MSLZ1 ISDES = OOT-MSLZ1-3 LSDES = JSG(ISDES+1) IDDES = JSG(ISDES+2) IDMIN = JSG(ISMIN+2) IDMAX = LSDES-MSLZ1-MSLZ2-2 C VERIFIER LE POINTEUR IF (POINT.LT.IDMIN) THEN LRET = 1 ELSEIF (POINT.GT.IDMAX) THEN LRET = 1 ELSEIF (MOD(POINT-IDMIN,MDLDE).NE.0) THEN LRET = 1 ELSEIF (OOA(OOT+POINT+1).LT.0) THEN LRET = 3 ELSE LRET = 2 IF (BOOL1) THEN C Le segment est-il dans la queue de suppression nth=oothrd do i=1,isupq(nth) if (supq(nth,i).eq.POINT) THEN LRET=3 RETURN endif enddo ENDIF ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales