Télécharger result.eso

Retour à la liste

Numérotation des lignes :

result
  1. C RESULT SOURCE CB215821 25/04/23 21:15:40 12247
  2. SUBROUTINE RESULT(ICHPO1,ICHPOR)
  3. C====================================================================
  4. C
  5. C CALCULE LA RESULTANTE D UN CHAMP PAR POINT
  6. C
  7. C ENTREES
  8. C ICHPO1 = UN CHAMP PAR POINT ARBITRAIRE
  9. C SORTIES
  10. C ICHPOR = CHAMP PAR POINT RESULTANT
  11. C QUI A LES CARACTERISTIQUES SUIVANTES
  12. C NSOUPO=1 IGEOC=1ER POINT DU CHAMP DONNE
  13. C
  14. C ATTENTION : DANS L IMMEDIAT CET OPERATEUR SE CONTENTE DE
  15. C SOMMER LES VALEURS SUR LES DIFFERENTES COMPOSANTES
  16. C
  17. C CODE JACQUELINE BROCHARD AVRIL 85
  18. C corrections pour prendre en compte divers types
  19. C de chpoints vide S. GOUNAND JUILLET 2013
  20. C=====================================================================
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23.  
  24. -INC SMCHPOI
  25. -INC SMCOORD
  26. -INC SMELEME
  27. -INC PPARAM
  28. -INC CCOPTIO
  29.  
  30. SEGMENT SICOMP
  31. CHARACTER*(LOCOMP) ICOMP(0)
  32. ENDSEGMENT
  33.  
  34. SEGMENT IHARM(0)
  35.  
  36.  
  37. C
  38. C STOCKENT LES NOMS DES COMPOSANTES ET LES HARMONIQUES
  39. C
  40. MCHPO1=ICHPO1
  41. SEGACT MCHPO1
  42. NSOUP1=MCHPO1.IPCHP(/1)
  43. C
  44. C ON INITIALISE LE CHPOINT RESULTANT
  45. C
  46. NSOUPO=MIN(1,NSOUP1)
  47. NAT=MAX(1,MCHPO1.JATTRI(/1))
  48. SEGINI MCHPOI
  49. C
  50. C INITIALISATION DES TITRES DU CHPOINT RESULTANT ET DU IFOPOI
  51. C
  52. MTYPOI=MCHPO1.MTYPOI
  53. MOCHDE=MCHPO1.MOCHDE
  54. IFOPOI=MCHPO1.IFOPOI
  55. DO 111 NATI=1,NAT
  56. JATTRI(NATI)=MCHPO1.JATTRI(NATI)
  57. 111 CONTINUE
  58. JATTRI(1)=2
  59. * le champ par point resultant est de nature discrete (DEGAY)
  60. ICHPOR=MCHPOI
  61. IF (NSOUP1.GT.0) THEN
  62. C
  63. C ON RECUPERE LES NOMS DES COMPOSANTES ET ON LES MET DANS ICOMP
  64. C ON CHERCHE EGALEMENT LE NUMERO DU PREMIER NOEUD NON NUL DANS LES
  65. C IGEOC
  66. C
  67. INODE=0
  68. SEGINI SICOMP,IHARM
  69. * gounand Les deux lignes suivantes sont inutiles et potentiellement
  70. * dangereuses si NC=0
  71. * ICOMP(**)=MSOUP1.NOCOMP(1)
  72. * IHARM(**)=MSOUP1.NOHARM(1)
  73. DO 100 IA=1,NSOUP1
  74. MSOUP1=MCHPO1.IPCHP(IA)
  75. SEGACT MSOUP1
  76. NC1=MSOUP1.NOCOMP(/2)
  77. DO 120 IB=1,NC1
  78. DO 140 IC=1,ICOMP(/2)
  79. IF (ICOMP(IC).EQ.MSOUP1.NOCOMP(IB)
  80. S .AND.IHARM(IC).EQ.MSOUP1.NOHARM(IB)) GOTO 120
  81. 140 CONTINUE
  82. ICOMP(**)=MSOUP1.NOCOMP(IB)
  83. IHARM(**)=MSOUP1.NOHARM(IB)
  84. 120 CONTINUE
  85. IPT1=MSOUP1.IGEOC
  86. IF (IPT1.GT.0.AND.INODE.EQ.0) THEN
  87. SEGACT IPT1
  88. NBL=IPT1.NUM(/2)
  89. IF (NBL.GT.0) INODE=IPT1.NUM(1,1)
  90. ENDIF
  91. 100 CONTINUE
  92. NC=ICOMP(/2)
  93. IF (NC.EQ.0) THEN
  94. * On n'a pas trouvé de composantes => CHPO VIDE
  95. NSOUPO=0
  96. SEGADJ MCHPOI
  97. ELSE
  98. SEGINI MSOUPO
  99. IPCHP(1)=MSOUPO
  100. C
  101. C REMPLISSAGE DES NOMS DE COMPOSANTES ET DES HARMONIQUES
  102. C
  103. DO 210 I=1,NC
  104. NOCOMP(I)=ICOMP(I)
  105. NOHARM(I)=IHARM(I)
  106. 210 CONTINUE
  107. C
  108. C CREATION DU SUPPORT GEOMETRIQUE DU CHPOINT RESULTANT
  109. C
  110. NBNN=1
  111. NBELEM=1
  112. * On n'a pas trouvé de noeuds => CHPO VIDE + noms de composantes
  113. * + IGEOC vide + IPOVAL vide
  114. * On est un peu trop gentil
  115. IF (INODE.EQ.0) NBELEM=0
  116. NBSOUS=0
  117. NBREF=0
  118. SEGINI MELEME
  119. ITYPEL=1
  120. IF (INODE.NE.0) NUM(1,1)=INODE
  121. IGEOC=MELEME
  122. C
  123. C CREATION DES VALEURS DU CHPOINT RESULTANT
  124. C
  125. N=1
  126. IF (INODE.EQ.0) N=0
  127. SEGINI MPOVAL
  128. IPOVAL=MPOVAL
  129. IF (INODE.GT.0) THEN
  130. C
  131. C BOUCLE SUR LES SOUS PAQUETS DU CHPOINT ARGUMMENT
  132. C
  133. DO 200 IA=1,NSOUP1
  134. MSOUP1=MCHPO1.IPCHP(IA)
  135. SEGACT MSOUP1
  136. NC1=MSOUP1.NOCOMP(/2)
  137. MPOVA1=MSOUP1.IPOVAL
  138. SEGACT MPOVA1
  139. C
  140. C ON CHERCHE LE NOM DE LA COMPOSANTE
  141. C
  142. N1=MPOVA1.VPOCHA(/1)
  143. DO 220 IB=1,NC1
  144. DO 240 IC=1,NC
  145. IF (ICOMP(IC).EQ.MSOUP1.NOCOMP(IB)
  146. S .AND.IHARM(IC).EQ.MSOUP1.NOHARM(IB))
  147. $ GOTO 260
  148. 240 CONTINUE
  149. 260 CONTINUE
  150. C
  151. C ET ON ADDITIONNE
  152. C
  153. DO 280 ID=1,N1
  154. VPOCHA(1,IC)=VPOCHA(1,IC)+
  155. $ MPOVA1.VPOCHA(ID,IB)
  156. 280 CONTINUE
  157. 220 CONTINUE
  158. 200 CONTINUE
  159. ENDIF
  160. ENDIF
  161. C
  162. C SUPPRESSION DES SEGMENTS DE TRAVAIL
  163. C
  164. SEGSUP SICOMP,IHARM
  165. ENDIF
  166. END
  167.  
  168.  
  169.  
  170.  
  171.  

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