Télécharger chpcoo.eso

Retour à la liste

Numérotation des lignes :

chpcoo
  1. C CHPCOO SOURCE PV 22/01/18 21:15:02 11267
  2. C CREE UN (DES) CHAMP(S) POINT TYPE SCAL A PARTIR DES COORDONNEES.
  3. C
  4. SUBROUTINE CHPCOO (IVAL,MELEME)
  5. C
  6. C IVAL VAUT 1 ON VEUT CREER UN SEUL CHPOINT CONTENANT LA
  7. C 1 ERE COORDONNES DES NOEUDS DE L'OBJET IMELE
  8. C 2 IDEM POUR LA 2 EME COORDONNEES
  9. C 3 IDEM POUR LA 3 EME COORDONNEES
  10. C 0 ON CREE AUTANT DE CHPOINT QUE IDIM
  11. C IMELE EST LE POINTEUR SUR L'OBJET GEOMETRIQUE
  12. C
  13. IMPLICIT INTEGER(I-N)
  14. C
  15. CHARACTER*4 MOCURV(1)
  16. C
  17. DATA MOCURV/ 'CURV' /
  18. C
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22. -INC SMELEME
  23. -INC SMCHPOI
  24. -INC SMCOORD
  25.  
  26. SEGACT MELEME
  27.  
  28. C---- CAS DU MAILLAGE VIDE
  29. C
  30. ISOU1=LISOUS(/1)
  31. IF (ITYPEL.EQ.0.AND.ISOU1.EQ.0) THEN
  32. NAT=1
  33. NSOUPO=0
  34. SEGINI,MCHPOI
  35. MCHPOI.IFOPOI=IFOUR
  36. MCHPOI.JATTRI(1)=1
  37. CALL ACTOBJ('CHPOINT ',MCHPOI,1)
  38. CALL ECROBJ('CHPOINT ',MCHPOI)
  39. IF (IVAL.EQ.0) THEN
  40. IF (IDIM.EQ.2) THEN
  41. SEGINI,MCHPO1
  42. MCHPO1.IFOPOI=IFOUR
  43. MCHPO1.JATTRI(1)=1
  44. CALL ACTOBJ('CHPOINT ',MCHPO1,1)
  45. CALL ECROBJ('CHPOINT ',MCHPO1)
  46. ELSEIF (IDIM.EQ.3) THEN
  47. SEGINI,MCHPO1
  48. MCHPO1.IFOPOI=IFOUR
  49. MCHPO1.JATTRI(1)=1
  50. CALL ACTOBJ('CHPOINT ',MCHPO1,1)
  51. CALL ECROBJ('CHPOINT ',MCHPO1)
  52. SEGINI,MCHPO2
  53. MCHPO2.IFOPOI=IFOUR
  54. MCHPO2.JATTRI(1)=1
  55. CALL ACTOBJ('CHPOINT ',MCHPO2,1)
  56. CALL ECROBJ('CHPOINT ',MCHPO2)
  57. ENDIF
  58. ENDIF
  59. RETURN
  60. ENDIF
  61. C
  62. C
  63. C
  64. C---- CAS DE L'OPTION "CURV"
  65. C
  66. CALL LIRMOT(MOCURV,1,IPLAC,0)
  67. IF (IERR.NE.0) RETURN
  68. IF (IPLAC.EQ.1) THEN
  69. C
  70. IF (ISOU1.NE.0) THEN
  71. C write(6,*) ' ITYPEL,ISOU1',ITYPEL,ISOU1
  72. CALL ERREUR(853)
  73. RETURN
  74. ENDIF
  75. C
  76. IF (ITYPEL.EQ.2) THEN
  77. IPT2 = MELEME
  78. CALL CHANGE(IPT2,1)
  79.  
  80. IPT1 = MELEME
  81. NBEL1 = IPT1.NUM(/2)
  82. SEGACT MCOORD
  83. C
  84. NAT = 1
  85. NSOUPO = 1
  86. SEGINI, MCHPOI
  87. MTYPOI = ' '
  88. MOCHDE = ' CHPOINT de coordonnee curviligne '
  89. JATTRI(1) = 1
  90. IFOPOI = IFOUR
  91. C
  92. NC = 1
  93. SEGINI, MSOUPO
  94. IPCHP(1) = MSOUPO
  95. NOCOMP(1) = 'SCAL'
  96. IGEOC = IPT2
  97. C
  98. N = IPT2.NUM(/2)
  99. SEGINI, MPOVAL
  100. IPOVAL = MPOVAL
  101. C
  102. VPOCHA(1,1) = 0.D0
  103. XS1 = 0.D0
  104. ID1 = IDIM + 1
  105. IPP = IPT1.NUM(1,1) - 1
  106. DO 20 K=1,NBEL1
  107. IP1 = IPT1.NUM(1,K) - 1
  108. IP2 = IPT1.NUM(2,K) - 1
  109. IF (IP1.NE.IPP) THEN
  110. CALL ERREUR(942)
  111. RETURN
  112. ENDIF
  113. C
  114. XSI1 = 0.D0
  115. DO 2 I=1,IDIM
  116. XI1 = XCOOR(IP1*ID1+I)
  117. XI2 = XCOOR(IP2*ID1+I)
  118. XSI1 = XSI1 + (XI2 - XI1)**2
  119. 2 CONTINUE
  120. XS1 = XS1 + SQRT(XSI1)
  121. VPOCHA(K+1,1) = XS1
  122. IPP = IP2
  123. 20 CONTINUE
  124. ELSE
  125. C write(6,*) ' ITYPEL,ISOU1',ITYPEL,ISOU1
  126. CALL ERREUR(853)
  127. RETURN
  128. ENDIF
  129. C
  130. CALL ACTOBJ('CHPOINT ',MCHPOI,1)
  131. CALL ECROBJ('CHPOINT ',MCHPOI)
  132. C
  133. RETURN
  134. ENDIF
  135. C
  136. C
  137. C
  138. C---- AUTRES CAS
  139. C
  140. IF( ITYPEL.NE.1) CALL CHANGE (MELEME,1)
  141. NBPOIN=NUM(/2)
  142. SEGACT MCOORD
  143. NDE=1
  144. NFI=IDIM+1
  145. IF(IVAL.NE.0) THEN
  146. NDE=IVAL
  147. NFI=IVAL+1
  148. ENDIF
  149. NSOUPO=1
  150. NC=1
  151. N=NBPOIN
  152. IA=NFI-NDE
  153. DO 10 IAA=1,IA
  154. IRR= NFI-IAA
  155. NAT=1
  156. SEGINI MCHPOI
  157. MOCHDE=' chpoint de coordonnees '
  158. MTYPOI=' '
  159. JATTRI(1) = 1
  160. IPPOI=MCHPOI
  161. SEGINI MSOUPO
  162. SEGINI MPOVAL
  163. IPCHP(1)=MSOUPO
  164. IFOPOI = IFOUR
  165. NOCOMP(1)='SCAL'
  166. NOHARM(1)=NIFOUR
  167. IGEOC=MELEME
  168. IPOVAL=MPOVAL
  169. DO 1 I= 1 ,N
  170. I1=NUM(1,I)
  171. I2=(I1-1)*(IDIM+1)
  172. VPOCHA(I,1)=XCOOR(I2+IRR)
  173. 1 CONTINUE
  174. CALL ACTOBJ('CHPOINT ',IPPOI,1)
  175. CALL ECROBJ('CHPOINT ',IPPOI)
  176. 10 CONTINUE
  177. END
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  

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