Télécharger ooove1.eso

Retour à la liste

Numérotation des lignes :

ooove1
  1. C OOOVE1 SOURCE PV090527 26/04/24 08:23:26 12524
  2. SUBROUTINE OOOVE1 (LRET,POINT)
  3. C----------------------------------------------------------------------
  4. C
  5. C VERIFIER LE POINTEUR
  6. C
  7. C ->LRET 1 LE POINTEUR : A UNE VALEUR INVALIDE
  8. C 2 LE POINTEUR : OK
  9. C 3 LE POINTEUR : DESIGNE UN SEGMENT SUPPRIME
  10. C
  11. C PROGRAMMEUR : MOUGIN
  12. C CREE : 03/03/88 POUR LE JEUNE RIEUNIER
  13. C
  14. C-----------------------------------------------------------------------
  15. C
  16. C MSLSM NOMBRE DE MOTS MINI POUR UN SEGMENT
  17. C MSLZ1 NOMBRE DE MOTS DE CONTROLE EN DEBUT DE SEGMENT
  18. C MSLZ2 NOMBRE DE MOTS DE CONTROLE EN FIN DE SEGMENT
  19. C MDLDE NOMBRE DE MOTS POUR UN DESCRIPTEUR
  20. %INC IOOSGM
  21. %INC IOODES
  22. %INC IOOWCOM
  23. C PARAMETER ( MSLSM = 8 )
  24. C PARAMETER ( MSLZ1 = 4 )
  25. C PARAMETER ( MSLZ2 = 1 )
  26. C PARAMETER ( MDLDE = 8 )
  27.  
  28. LOGICAL BOOL1
  29.  
  30. SEGMENT , POINT
  31. INTEGER BID1
  32. ENDSEGMENT
  33.  
  34. MACRO , JSG(I) = OOV(I)
  35.  
  36. BOOL1 =.TRUE.
  37.  
  38. C On saute l'ENTRY
  39. GOTO 1
  40. C Cette ENTRY permet de ne pas verifier la queue de SUPPRESSION
  41. C Appel dans OOOSUQ qui ne doit pas verifier la queue
  42. ENTRY OOOVE2 (LRET,POINT)
  43. BOOL1 =.FALSE.
  44.  
  45. 1 CONTINUE
  46. C---------------------------------------------------------------------
  47. C
  48. C QUELQUES PARAMETRES
  49. C
  50. C ISMIN => JSG(ISMIN+1) : PREMIER MOT DU PREMIER SEGMENT
  51. C ISMAX => JSG(ISMAX+1) : PREMIER MOT DU DERNIER SEGMENT POSSIBLE
  52. C
  53. C ISDES => JSG(ISDES+1) : PREMIER MOT DU SEGMENT DES DESCRIPTEURS
  54. C LSDES = JSG(ISDES+1) : LONGUEUR DU SEGMENT DES DESCRIPTEURS
  55. C IDDES => OOA(OOT+IDDES) : PREMIER MOT DU DESCRIPTEUR
  56. C DU SEGMENT DES DESCRIPTEURS
  57. C IDMIN = VALEUR MINIMUM POUR UN POINTEUR
  58. C IDMAX = VALEUR MAXIMUM POUR UN POINTEUR
  59.  
  60. LZA = JSG(OOA(1)+1)
  61. ISMIN = OOA(1)+ 2*MSLSM-MSLZ1+2*MSLSM
  62. ISMAX = OOA(1)+LZA-MSLSM-MSLZ1
  63.  
  64. ISDES = OOT-MSLZ1-3
  65. LSDES = JSG(ISDES+1)
  66. IDDES = JSG(ISDES+2)
  67. IDMIN = JSG(ISMIN+2)
  68. IDMAX = LSDES-MSLZ1-MSLZ2-2
  69.  
  70. C VERIFIER LE POINTEUR
  71.  
  72. IF (POINT.LT.IDMIN) THEN
  73. LRET = 1
  74. ELSEIF (POINT.GT.IDMAX) THEN
  75. LRET = 1
  76. ELSEIF (MOD(POINT-IDMIN,MDLDE).NE.0) THEN
  77. LRET = 1
  78. ELSEIF (OOA(OOT+POINT+1).LT.0) THEN
  79. LRET = 3
  80. ELSE
  81. LRET = 2
  82. IF (BOOL1) THEN
  83. C Le segment est-il dans la queue de suppression
  84. nth=oothrd
  85. do i=1,isupq(nth)
  86. if (supq(nth,i).eq.POINT) THEN
  87. LRET=3
  88. RETURN
  89. endif
  90. enddo
  91. ENDIF
  92. ENDIF
  93. RETURN
  94. END
  95.  
  96.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales