Télécharger result.eso

Retour à la liste

Numérotation des lignes :

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

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