Télécharger etalch.eso

Retour à la liste

Numérotation des lignes :

etalch
  1. C ETALCH SOURCE CB215821 26/08/24 21:16:31 12622
  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 5001 J=1,IPR1
  46. DO 1 K=1,NNI1
  47. VA(K,J)=0.D0
  48. 1 CONTINUE
  49. 5001 CONTINUE
  50. C
  51. IF(IPB.EQ.0) GOTO 2
  52. DO 3 J=1,IPR1
  53. IPB(J)=0
  54. 3 CONTINUE
  55. 2 CONTINUE
  56.  
  57. C---- Boucle sur les zones du CHPOINT ----
  58.  
  59. NSOUP=IPCHP(/1)
  60. DO 60 ISOUP=1,NSOUP
  61.  
  62. MSOUPO=IPCHP(ISOUP)
  63. MELEME=IGEOC
  64. N2=NUM(/2)
  65. MPOVAL=IPOVAL
  66.  
  67. C ---- Boucle sur les composantes du CHPOINT ----
  68.  
  69. DO 61 J=1,NOCOMP(/2)
  70.  
  71. DO 62 K=1,NNI1
  72. IF(NOCOMP(J).EQ.CIINC(K)) GOTO 63
  73. 62 CONTINUE
  74. c si on n'a pas trouvé la J eme composante dans CIINC,
  75. c -> on essaie la prochaine
  76. IF(ICODE.EQ.0) GOTO 61
  77. c -> ou erreur
  78. WRITE(IOIMP,*) 'NOCOMP(',J,')=',NOCOMP(J),'n existe pas dans:'
  79. WRITE(IOIMP,*) 'CIINC=',(CIINC(iou),iou=1,NNI1)
  80. IJ=1
  81. GOTO 66
  82. c J eme composante dans CIINC(K)
  83. 63 CONTINUE
  84.  
  85. IF(IPB.NE.0) GOTO 65
  86.  
  87. c - si IPB n'existe pas, on verifie que MCONTR=1 et on remplit VA
  88. DO 64 IJ=1,N2
  89. KI=ICPR(NUM(1,IJ))
  90. IF(KI.EQ.0) THEN
  91. IF(ICODE.EQ.0) GOTO 64
  92. WRITE(IOIMP,*) IJ,'ieme NOEUD #',NUM(1,IJ),'n existe pas',
  93. & ' dans l ICPR'
  94. GOTO 66
  95. ENDIF
  96. IF(MCONTR(K,KI).NE.1) THEN
  97. IF(ICODE.EQ.0) GOTO 64
  98. GOTO 66
  99. ENDIF
  100. VA(K,KI)=VPOCHA(IJ,J)
  101. 64 CONTINUE
  102. GOTO 61
  103.  
  104. c - si IPB existe, on le remplit aussi
  105. 65 CONTINUE
  106. c boucle 74 = copie de la boucle 64 avec remplissage de IPB en +
  107. DO 74 IJ=1,N2
  108. KI=ICPR(NUM(1,IJ))
  109. IF(KI.EQ.0) THEN
  110. IF(ICODE.EQ.0) GOTO 74
  111. WRITE(IOIMP,*) IJ,'ieme NOEUD #',NUM(1,IJ),'n existe pas',
  112. & ' dans l ICPR'
  113. GOTO 66
  114. ENDIF
  115. IF(MCONTR(K,KI).NE.1) THEN
  116. IF(ICODE.EQ.0) GOTO 74
  117. GOTO 66
  118. ENDIF
  119. IF(J.EQ.1) IPB(NPR2+IJ)=KI
  120. VA(K,KI)=VPOCHA(IJ,J)
  121. 74 CONTINUE
  122. GOTO 61
  123.  
  124. c - ERREUR -
  125. 66 CONTINUE
  126. MOTERR=NOCOMP(J)
  127. INTERR(1)=NUM(1,IJ)
  128. CALL ERREUR(140)
  129. C INCOMPATIBILITE ENTRE LES POINTS ET COMPOSANTES DES 2 CHPOINTS
  130. GOTO 5000
  131.  
  132. 61 CONTINUE
  133. C ---- Fin de Boucle sur les comosantes du CHPOINT ----
  134. NPR2=NPR2+N2
  135.  
  136. 60 CONTINUE
  137. C---- Fin de Boucle sur les zones du CHPOINT ----
  138. C
  139. C---- DesActivation des segments utiles et return ----
  140. 5000 CONTINUE
  141. END
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  

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