Télécharger ooomwf.eso

Retour à la liste

Numérotation des lignes :

ooomwf
  1. C OOOMWF SOURCE PV090527 26/04/24 08:23:18 12524
  2. SUBROUTINE OOOMWF (LRET,NMOTS)
  3. C---------------------------------------------------------------
  4. C
  5. C FAIRE DE LA PLACE EN ZONE MEMOIRE DYNAMIQUE
  6. C POUR AGRANDIR LA ZONE MEMOIRE FIXE
  7. C
  8. C ->LRET 1 PLUS DE PLACE MEMOIRE
  9. C 2 OK
  10. C
  11. C NMOTS NOMBRE DE MOTS DESIRES
  12. C
  13. C METHODE UTILISEE :
  14. C
  15. C ON DEPLACE LES SEGMENTS EN FIN DE ZONE DYNAMIQUE .
  16. C LE PROCESSUS S' ARRETE LORSQUE LE TROU AINSI CREE DEVIENT
  17. C SUFFISANT : ON FAIT ALORS PASSER LA PARTIE NECESSAIRE
  18. C EN ZONE FIXE , LE RESTE DU TROU RESTANT EN ZONE DYNAMIQUE.
  19. C
  20. C-------------------------------------------------------------------
  21. C
  22. %INC IOOADR
  23. %INC IOOADZ
  24. %INC IOOSGM
  25. %INC IOOTRO
  26. %INC IOOTF1
  27. %INC IOOTF2
  28. C
  29. LT0 =0
  30. LSG =((NMOTS+MSLSM-1)/MSLSM)*MSLSM
  31. C
  32. IT =MZDLIM(IZA)
  33. C
  34. C***** TROU A GAUCHE ? : ON L'ISOLE
  35. C SEGMENT ? : ON LE DEPLACE
  36. C
  37. DO WHILE (LT0.LT.LSG)
  38. IF (MTROUG(IT)) THEN
  39. LT=-MTLTP(IT)
  40. IT=IT-LT
  41. IF (MZITS0(IZA,ZMEMDYN).EQ.IT) THEN
  42. MZITS0(IZA,ZMEMDYN)=MTITS(IT)
  43. ENDIF
  44. MTF1 , IZA(IT,LT)
  45. MZLTROU(IZA,ZMEMDYN)=MZLTROU(IZA,ZMEMDYN)-LT
  46. LT0=LT0+LT
  47. ELSE
  48. LS = MSLSP(IT)
  49. IS = IT-LS
  50. IDE = MSIDE(IS)
  51. CALL OOOXMV (LRET,IDE,LS-(MSLCZ))
  52. IF (LRET.EQ.1) RETURN
  53. ENDIF
  54. ENDDO
  55. C
  56. C****** TRANSPORT DU TROU NECESSAIRE
  57. C
  58. LT=LT0-LSG
  59. ITF=IT+LT
  60.  
  61. MTF2 , IZA(ZMEMFIX,ITF,LSG)
  62. MZLTROU(IZA,ZMEMFIX)=MZLTROU(IZA,ZMEMFIX)+LSG
  63. MZITS0(IZA,ZMEMFIX)=ITF
  64. MZDLIM(IZA)=ITF
  65.  
  66. IF (LT.GT.0) THEN
  67. MTF2 , IZA(ZMEMDYN,IT,LT)
  68. MZLTROU(IZA,ZMEMDYN)=MZLTROU(IZA,ZMEMDYN)+LT
  69. ENDIF
  70. LRET = 2
  71.  
  72. END
  73.  
  74.  

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