Télécharger etalch.eso

Retour à la liste

Numérotation des lignes :

etalch
  1. C ETALCH SOURCE CB215821 20/11/25 13:28:08 10792
  2. SUBROUTINE ETALCH(MCHPOI,IINC,ICPR,ICONTR,MVA,IPB,NPR2,ICODE)
  3. C
  4. C=======================================================================
  5. C CE SUBROUTINE ETALE LE CHPOINT DANS LE TABLEAU MVA
  6. C
  7. C ***** ENTREES *****
  8. C IINC : LISTE DES COMPOSANTES DU TABLEAU
  9. C ICPR(I)=KI : LE NOEUD I EST LE KI^IEME POINT DU TABLEAU MVA
  10. C si ICODE=1, ON VERIFIE QUE LES POINTS DE MCHPOI MUNIS DE LEUR
  11. C COMPOSANTES (indice K) SONT CONTENUS DANS MVA,
  12. C C.A.D. QUE MCONTR(K,KI)=1 POUR CES POINTS
  13. C
  14. C ***** SORTIES *****
  15. C LES VALEURS DE MVA DANS LE CHPOINT
  16. C EVENTUELLEMENT IPB LE TABLEAU DE CORRESPONDANCE DES POINTS
  17. C IPB(I)=IK LE IEME POINT DU CHPOINT EST A LA PLACE IK DANS MVA
  18. C NPR2 = NOMBRE DE POINTS TOTAL DU MCHPOI
  19. C
  20. C ATTENTION : SEGACT MVA,IPB ET MISE A ZERO DE CES 2 TABLEAUX AVANT
  21. C UTILISATION.
  22. C=======================================================================
  23. IMPLICIT INTEGER(I-N)
  24.  
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. -INC SMCHPOI
  28. -INC SMELEME
  29. SEGMENT ICPR(nbpts)
  30. SEGMENT IINC
  31. CHARACTER*(LOCOMP) CIINC(0)
  32. ENDSEGMENT
  33. SEGMENT/MVA/(VA(NNI1,IPR1)*D),MVA1.MVA
  34. SEGMENT/ICONTR/(MCONTR(NNI1,IPR1))
  35. SEGMENT IPB(IPR1)
  36.  
  37. C---- Activation des segments utiles ----
  38.  
  39. NNI1=VA(/1)
  40. IPR1=VA(/2)
  41. NPR2=0
  42.  
  43. C---- Mise a 0 de VA et de IPB----
  44.  
  45. DO 1 J=1,IPR1
  46. DO 1 K=1,NNI1
  47. VA(K,J)=0.D0
  48. 1 CONTINUE
  49. C
  50. IF(IPB.EQ.0) GOTO 2
  51. DO 3 J=1,IPR1
  52. IPB(J)=0
  53. 3 CONTINUE
  54. 2 CONTINUE
  55.  
  56. C---- Boucle sur les zones du CHPOINT ----
  57.  
  58. NSOUP=IPCHP(/1)
  59. DO 60 ISOUP=1,NSOUP
  60.  
  61. MSOUPO=IPCHP(ISOUP)
  62. MELEME=IGEOC
  63. N2=NUM(/2)
  64. MPOVAL=IPOVAL
  65.  
  66. C ---- Boucle sur les composantes du CHPOINT ----
  67.  
  68. DO 61 J=1,NOCOMP(/2)
  69.  
  70. DO 62 K=1,NNI1
  71. IF(NOCOMP(J).EQ.CIINC(K)) GOTO 63
  72. 62 CONTINUE
  73. c si on n'a pas trouvé la J eme composante dans CIINC,
  74. c -> on essaie la prochaine
  75. IF(ICODE.EQ.0) GOTO 61
  76. c -> ou erreur
  77. WRITE(IOIMP,*) 'NOCOMP(',J,')=',NOCOMP(J),'n existe pas dans:'
  78. WRITE(IOIMP,*) 'CIINC=',(CIINC(iou),iou=1,NNI1)
  79. IJ=1
  80. GOTO 66
  81. c J eme composante dans CIINC(K)
  82. 63 CONTINUE
  83.  
  84. IF(IPB.NE.0) GOTO 65
  85.  
  86. c - si IPB n'existe pas, on verifie que MCONTR=1 et on remplit VA
  87. DO 64 IJ=1,N2
  88. KI=ICPR(NUM(1,IJ))
  89. IF(KI.EQ.0) THEN
  90. IF(ICODE.EQ.0) GOTO 64
  91. WRITE(IOIMP,*) IJ,'ieme NOEUD #',NUM(1,IJ),'n existe pas',
  92. & ' dans l ICPR'
  93. GOTO 66
  94. ENDIF
  95. IF(MCONTR(K,KI).NE.1) THEN
  96. IF(ICODE.EQ.0) GOTO 64
  97. GOTO 66
  98. ENDIF
  99. VA(K,KI)=VPOCHA(IJ,J)
  100. 64 CONTINUE
  101. GOTO 61
  102.  
  103. c - si IPB existe, on le remplit aussi
  104. 65 CONTINUE
  105. c boucle 74 = copie de la boucle 64 avec remplissage de IPB en +
  106. DO 74 IJ=1,N2
  107. KI=ICPR(NUM(1,IJ))
  108. IF(KI.EQ.0) THEN
  109. IF(ICODE.EQ.0) GOTO 74
  110. WRITE(IOIMP,*) IJ,'ieme NOEUD #',NUM(1,IJ),'n existe pas',
  111. & ' dans l ICPR'
  112. GOTO 66
  113. ENDIF
  114. IF(MCONTR(K,KI).NE.1) THEN
  115. IF(ICODE.EQ.0) GOTO 74
  116. GOTO 66
  117. ENDIF
  118. IF(J.EQ.1) IPB(NPR2+IJ)=KI
  119. VA(K,KI)=VPOCHA(IJ,J)
  120. 74 CONTINUE
  121. GOTO 61
  122.  
  123. c - ERREUR -
  124. 66 CONTINUE
  125. MOTERR=NOCOMP(J)
  126. INTERR(1)=NUM(1,IJ)
  127. CALL ERREUR(140)
  128. C INCOMPATIBILITE ENTRE LES POINTS ET COMPOSANTES DES 2 CHPOINTS
  129. GOTO 5000
  130.  
  131. 61 CONTINUE
  132. C ---- Fin de Boucle sur les comosantes du CHPOINT ----
  133. NPR2=NPR2+N2
  134.  
  135. 60 CONTINUE
  136. C---- Fin de Boucle sur les zones du CHPOINT ----
  137. C
  138. C---- DesActivation des segments utiles et return ----
  139. 5000 CONTINUE
  140. END
  141.  
  142.  
  143.  
  144.  
  145.  

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