Télécharger exachp.eso

Retour à la liste

Numérotation des lignes :

exachp
  1. C EXACHP SOURCE OF166741 24/11/14 21:15:10 12078
  2.  
  3. C----------------------------------------------------------------------
  4. C BUT: REMPLIT LES PILES A PARTIR DE L EXAMEN DES CHPOINTS
  5. C SI IIICHA =1 ON CHANGE LES POINTEURS----
  6. C
  7. C ENTREE ITLACC POINTEUR DE LA PILE EXAMINEE
  8. C ICOLAC POINTEUR SUR LE CHAPEAU DES PILES
  9. C M1 @REMIER INDICE D EXAMEN DANS LA PILE
  10. C M2 DERNIER INDICE
  11. C IIICHA =1 ON CHANGE LES POINTEURS
  12. C----------------------------------------------------------------
  13. C APPELE PAR EXPIL
  14. C APPELLE AJOUN
  15. C=======================================================================
  16. C TABLEAU KCOLA : VOIR TYPFIL
  17. C=======================================================================
  18.  
  19. SUBROUTINE EXACHP (ICOLAC,ITLACC,M1,M2,IIICHA)
  20.  
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23.  
  24. -INC PPARAM
  25. -INC CCOPTIO
  26.  
  27. -INC SMCOORD
  28. -INC SMELEME
  29. -INC SMCHPOI
  30.  
  31. -INC TMCOLAC
  32.  
  33. LOGICAL ooovp1
  34.  
  35. IF (M1.GT.M2) RETURN
  36.  
  37. iun = 1
  38. ILISSE = icolac.ILISSG
  39. SEGACT,ILISSE*MOD
  40.  
  41. ICO1 = icolac.KCOLA(1)
  42.  
  43. DO 604 IEL = M1, M2
  44. MCHPOI = itlacc.ITLAC(IEL)
  45. IF (MCHPOI.EQ.0) GOTO 604
  46. if (.NOT.ooovp1(MCHPOI)) goto 610
  47.  
  48. SEGACT,MCHPOI
  49. ijk = mchpoi.IPCHP(/1)
  50. IF (ijk.EQ.0) GOTO 606
  51. IF (ijk.GT.1000) GOTO 610
  52.  
  53. DO 605 i = 1, ijk
  54. MSOUPO = mchpoi.IPCHP(i)
  55. IF (MSOUPO.EQ.0) GOTO 610
  56. if (.NOT.ooovp1(MSOUPO)) goto 610
  57. IF (IIICHA.EQ.1) THEN
  58. SEGACT,MSOUPO*MOD
  59. ELSE
  60. SEGACT,MSOUPO
  61. ENDIF
  62. iva = msoupo.IGEOC
  63. IF (IIICHA.EQ.1 .and. iva.le.0) goto 607
  64. if (.NOT.ooovp1(iva)) goto 610
  65. meleme = iva
  66. segact,meleme
  67. if (num(/1).ne.1.or.num(/2).gt.NBPTS) goto 610
  68. * compression des meleme si possible
  69. * trop couteux pour le gain s'il y a beaucoup de meleme donc uniquement dans la sauvegarde
  70. IF (IIICHA.EQ.1) then
  71. ivas = 0
  72. CALL chleha(0,iva,ivas,ICO1,ILISSE)
  73. if (ivas.ne.0) msoupo.IGEOC = ivas
  74. ENDIF
  75. iva = msoupo.IGEOC
  76. CALL AJOUN(ICO1,iva,ILISSE,iun)
  77. IF (IIICHA.EQ.1) msoupo.IGEOC = -iva
  78. 607 continue
  79. SEGDES MSOUPO
  80. 605 CONTINUE
  81.  
  82. 606 SEGDES MCHPOI
  83. GOTO 604
  84.  
  85. * chpoint invalide. On le supprime de la pile
  86. 610 continue
  87. moterr(1:8) = 'CHPOINT'
  88. interr(1) = mchpoi
  89. call erreur(861)
  90. itlac(iel)=0
  91.  
  92. C ************
  93. 604 CONTINUE
  94.  
  95. RETURN
  96. END
  97.  
  98.  
  99.  

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