Télécharger ooosup.eso

Retour à la liste

Numérotation des lignes :

ooosup
  1. C OOOSUP SOURCE PV090527 26/04/24 08:23:22 12524
  2. SUBROUTINE OOOSUP (LRET,PSEG,KOD)
  3. C--------------------------------------------------------------------
  4. C
  5. C SEGSUP , PSEG
  6. C
  7. C ->LRET 1 PLUS DE PLACE MEMOIRE
  8. C 2 OK
  9. C
  10. C =>PSEG POINTEUR DESIGNANT LE SEGMENT A SUPPRIMER
  11. C REMIS A ZERO EN SORTIE .
  12. C
  13. C PROGRAMMEUR : MOUGIN
  14. C MODIF : 03/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOOSUG
  15. C MODIF : 03/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOOSUS
  16. C MODIF : 17/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOODLB
  17. C MODIF : 17/01/89 SUPPRIMER L'ARGUMENT IRET DU CALL OOOMRD
  18. C
  19. C---------------------------------------------------------------------
  20. C
  21. %INC IOOADR
  22. %INC IOOADZ
  23. %INC IOODES
  24. %INC IOOSGM
  25. %INC IOOWCOM
  26. %INC IOOUNIT
  27. POINTEUR PSEG.PSEG,psegs.pseg
  28. C
  29. C****** COMPOSANT D'UN SUPER SEGMENT ?
  30. C EN ZONE DE DEBORDEMENT --> RAMENE EN MEMOIRE
  31. C EN MEMOIRE --> ON ECLATE LE SUPER SEGMENT
  32. C
  33. psegs=pseg
  34. IF (PSEG.NE.0) THEN
  35. 100 ITYP = MDTYP(PSEG)
  36. ITRK = MDTRK(PSEG)
  37. IF (MDCAT (ITYP).EQ.MDBLOCK) THEN
  38. IF (MDDISK(ITYP).EQ.MDDISQUE) THEN
  39. IF (TESOOO) CALL OOOWER ('OOOSUP => OOOMRD')
  40. CALL OOOMRD (LRET,PSEG)
  41. IF (TESOOO) CALL OOOWER ('OOOSUP <= OOOMRD')
  42. IF (LRET.EQ.1) RETURN
  43. ELSE
  44. IF (TESOOO) CALL OOOWER ('OOOSUP => OOOSUS')
  45. CALL OOOSUS (MDMK(PSEG))
  46. IF (TESOOO) CALL OOOWER ('OOOSUP <= OOOSUS')
  47. ENDIF
  48. GO TO 100
  49. ENDIF
  50. C
  51. C****** SEGMENT ISOLE :
  52. C
  53. C MISE A JOUR DES STATISTIQUES SI ACTIF
  54. C LIBERE LA PLACE DISQUE
  55. IF (MDDISK(ITYP).EQ.MDMEM) THEN
  56. LSEG =MSLS1(MDISG(PSEG))
  57. IF (MDETAT(ITYP).EQ.MDACT) THEN
  58. MZJSS(ACTACTIF)=MZJSS(ACTACTIF)-1
  59. MZJSM(ACTACTIF)=MZJSM(ACTACTIF)-LSEG
  60. ENDIF
  61. CALL OOOSUG (PSEG)
  62. ELSE
  63. LSEG = MDLEN(PSEG)
  64. MDZERO(PSEG) = 0
  65. MDIDS (PSEG) = MDIDS(MZIDE1)
  66. MDIDP(-(MDIDS(MZIDE1)))= -PSEG
  67. MDIDS(MZIDE1) = -PSEG
  68. MDIDP(PSEG) = -MZIDE1
  69. ENDIF
  70. IF (ITRK.GT.0) CALL OOODLB (MZPTRK,ITRK)
  71. C
  72. MZJSS(ACTUEL)=MZJSS(ACTUEL)-1
  73. MZJSM(ACTUEL)=MZJSM(ACTUEL)-LSEG
  74.  
  75. C signaler qu'on libere le segment
  76. mdrw(psegs)=0
  77. mdro1(psegs)=0
  78. mdro2(psegs)=0
  79. if (psegs.le.0) write (JLST,*) ' ooowac 1 psegs ',psegs
  80. if (mdco(psegs).ne.0) then
  81. call ooocdt(mdco(psegs))
  82. mdco(psegs)=0
  83. endif
  84. if (psegs.le.0) write (JLST,*) ' ooowac 2 psegs ',psegs
  85. PSEG = 0
  86. ENDIF
  87.  
  88. LRET = 2
  89.  
  90. END
  91.  
  92.  

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