Télécharger ooomex.eso

Retour à la liste

Numérotation des lignes :

ooomex
  1. C OOOMEX SOURCE PV090527 26/04/24 08:23:13 12524
  2. SUBROUTINE OOOMEX (ISEG,LSG2)
  3. C---------------------------------------------------------------------
  4. C
  5. C EXTENSION D'UN SEGMENT DANS LE TROU SUIVANT
  6. C
  7. C
  8. C ISEG INDICE DU SEGMENT A ETENDRE
  9. C LSG2 LONGUEUR DESIREE POUR LE SEGMENT (MULTIPLE DE MSLSM)
  10. C
  11. C L' EXTENSION SE FAIT DANS LE TROU QUI SUIT LE BLOC , SI CELUI-CI
  12. C EST ABSENT OU TROP PETIT , L EXTENSION SERA NULLE OU INCOMPLETE
  13. C
  14. C PROGRAMMEUR : MOUGIN
  15. C MODIF : 09/01/89 EXTRAIT DE OOOMIN (NETTOYAGE DE PRINTEMPS)
  16. C MODIF : 27/02/89 ARGUMENTS : IZ => IZA , KZ => ZMEMDYN
  17. C
  18. C-----------------------------------------------------------------------
  19. C
  20. %INC IOOADR
  21. %INC IOOADZ
  22. %INC IOOSGM
  23. %INC IOOTRO
  24. %INC IOOTF1
  25. %INC IOOTF2
  26. %INC IOOUNIT
  27.  
  28. C ->LSG1 LA LONGUEUR ACTUELLE DU SEGMENT
  29. C ->IT1 L'INDICE DU TROU A DROITE DU SEGMENT
  30. C ->LT1 LA LONGUEUR DU TROU A DROITE DU SEGMENT
  31. C ->LEXT LA LONGUEUR DE TROU A UTILISER
  32.  
  33. LSG1 = MSLS1(ISEG)
  34. IT1 = ISEG+LSG1
  35. IF (IT1.EQ.MZPRTR) MZPRTR=ISEG
  36. LT1 = -MTLT1(IT1)
  37. LEXT = MIN(LT1,LSG2-LSG1)
  38. MZLTROU(IZA,ZMEMDYN) = MZLTROU(IZA,ZMEMDYN)-LEXT
  39.  
  40. C
  41. C****** SI LE TROU CORRESPOND JUSTE A LA DEMANDE,ON LE RETIRE DE LA
  42. C CHAINE DES TROUS
  43.  
  44. ITP = INDICE_TROU_PRECEDENT(IT1)
  45. ITS = INDICE_TROU_SUIVANT (IT1)
  46. IF (LT1.EQ.LEXT) THEN
  47. INDICE_TROU_PRECEDENT(ITS) = ITP
  48. INDICE_TROU_SUIVANT (ITP) = ITS
  49. IF (MZITS0(IZA,ZMEMDYN).EQ.IT1) MZITS0(IZA,ZMEMDYN) = ITS
  50.  
  51. ELSE
  52.  
  53. IT2 = IT1+LEXT
  54. LT2 = LT1-LEXT
  55. INDICE_TROU_PRECEDENT(ITS) = IT2
  56. INDICE_TROU_SUIVANT (ITP) = IT2
  57. INDICE_TROU_PRECEDENT(IT2) = ITP
  58. INDICE_TROU_SUIVANT (IT2) = ITS
  59. MTLT1(IT2) = -LT2
  60. MTLT2(IT2) = -LT2
  61.  
  62. IF (MZITS0(IZA,ZMEMDYN).EQ.IT1) MZITS0(IZA,ZMEMDYN) = IT2
  63. ENDIF
  64.  
  65. C ON EFFACE LA FRONTIERE ENTRE ANCIEN/NOUVEAU BLOC
  66.  
  67. INDICE_TROU_PRECEDENT(IT1) = 0
  68. INDICE_TROU_SUIVANT (IT1) = 0
  69. MTLT1 (IT1) = 0
  70. MTLTP (IT1) = 0
  71.  
  72. C LONGUEUR DU BLOC ETENDU
  73.  
  74. MSLS1(ISEG) = LSG1+LEXT
  75. MSLS2(ISEG) = LSG1+LEXT
  76.  
  77. END
  78.  
  79.  

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