Télécharger extr24.eso

Retour à la liste

Numérotation des lignes :

extr24
  1. C EXTR24 SOURCE CB215821 20/11/25 13:28:42 10792
  2. ************************************************************************
  3. * NOM : extr24
  4. * DESCRIPTION : Extrait les valeurs d'un LISTCHPO en un noeud donne
  5. ************************************************************************
  6. * APPELÉ PAR : extrai.eso ; crevlc.eso
  7. ************************************************************************
  8. * ENTRÉES :: aucune
  9. * SORTIES :: aucune
  10. ************************************************************************
  11. * SYNTAXE (GIBIANE) :
  12. *
  13. * LREEL1 = EXTR LCHPO1 'VALE' (MOT1 | LMOT1) (POIN1) ;
  14. *
  15. ************************************************************************
  16. SUBROUTINE EXTR24(ILCHP,ILMOT,IPOIN,ILREE)
  17. *
  18. IMPLICIT INTEGER(I-N)
  19. IMPLICIT REAL*8(A-H,O-Z)
  20. INTEGER NBNO
  21. *
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. -INC SMLCHPO
  26. -INC SMCHPOI
  27. -INC SMELEME
  28. -INC SMCOORD
  29. -INC SMLREEL
  30. -INC SMLMOTS
  31. *
  32. * NOMBRE D'OBJETS CHPOINT CONTENUS DANS LE LISTCHPO
  33. NBNO = 0
  34. MLCHPO=ILCHP
  35. SEGACT,MLCHPO
  36. NCH=ICHPOI(/1)
  37. *
  38. *
  39. * INITIALISATION DE LA LISTE DE REELS RENVOYEE EN SORTIE
  40. MLMOTS=ILMOT
  41. IF (ILMOT.EQ.0) THEN
  42. NCO=1
  43. KCO=1
  44. JG=NCH
  45. ELSE
  46. SEGACT,MLMOTS
  47. NCO=MOTS(/2)
  48. JG=NCH*NCO
  49. IF (NCO.EQ.0) THEN
  50. CALL ERREUR(643)
  51. RETURN
  52. ENDIF
  53. ENDIF
  54. SEGINI,MLREEL
  55. ILREE=MLREEL
  56.  
  57.  
  58. ICH=0
  59.  
  60. * (label 1 = boucle sur les CHPOINT)
  61. 1 CONTINUE
  62. IF (ICH.EQ.NCH) RETURN
  63. ICH=ICH+1
  64. MCHPOI=ICHPOI(ICH)
  65. SEGACT,MCHPOI
  66. NSOUPO=IPCHP(/1)
  67.  
  68. IF (ILMOT.EQ.0.AND.NSOUPO.GT.1) GOTO 999
  69.  
  70. ISOUPO=0
  71.  
  72. * (label 10 = boucle sur les SOUPO)
  73. 10 CONTINUE
  74. IF (ISOUPO.EQ.NSOUPO) THEN
  75. SEGDES,MCHPOI
  76. GOTO 1
  77. ENDIF
  78. ISOUPO=ISOUPO+1
  79. MSOUPO=IPCHP(ISOUPO)
  80. SEGACT,MSOUPO
  81.  
  82. NCOCH=NOCOMP(/2)
  83. IF (ILMOT.EQ.0.AND.NCOCH.GT.1) GOTO 999
  84.  
  85. ICO=0
  86.  
  87. * (label 20 = boucle sur les composantes demandees dans le LISTMOTS)
  88. 20 CONTINUE
  89. IF (ICO.EQ.NCO) GOTO 90
  90. ICO=ICO+1
  91.  
  92. * on recherche la composante requise dans le SOUPO/NOCOMP courant
  93. IF (ILMOT.NE.0) THEN
  94. DO KCO=1,NCOCH
  95. IF (NOCOMP(KCO).EQ.MOTS(ICO)) GOTO 30
  96. ENDDO
  97. KCO=0
  98. GOTO 20
  99. ENDIF
  100. *
  101. 30 CONTINUE
  102. MELEME=IGEOC
  103. MPOVAL=IPOVAL
  104. SEGACT,MELEME,MPOVAL
  105. NPOI1=NUM(/2)
  106. *
  107. * on recherche le noeud requis dans le SOUPO/MPOVAL courant
  108. DO KNO=1,NPOI1
  109. IF (NUM(1,KNO).EQ.IPOIN) GOTO 40
  110. ENDDO
  111. GOTO 90
  112. *
  113. 40 CONTINUE
  114. PROG((ICO-1)*NCH+ICH)=VPOCHA(KNO,KCO)
  115. GOTO 20
  116. *
  117. *
  118. *
  119. 90 IF (KCO.GT.0) SEGDES,MELEME,MPOVAL
  120. SEGDES,MSOUPO
  121. GOTO 10
  122. *
  123. ************************************************************************
  124. *
  125. 999 CALL ERREUR(641)
  126. RETURN
  127. *
  128. *
  129. RETURN
  130. *
  131. END
  132. *
  133. *
  134.  
  135.  
  136.  
  137.  

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