Télécharger evchpo.eso

Retour à la liste

Numérotation des lignes :

evchpo
  1. C EVCHPO SOURCE CB215821 21/02/09 21:15:01 10867
  2. SUBROUTINE EVCHPO(ICOUL,IBOPOI,IPOI,MEVOLL,CMOT,NCHPT,NMAIL)
  3. C======================================================================
  4. C OPTION CHPO DE L'OPERATEUR EVOL C
  5. C C
  6. C LA SYNTHAXE DE CETTE OPTION D'EVOL EST LA SUIVANTE : C
  7. C C
  8. C C
  9. C EV1 = EVOL (COUL) CHPO CHPT COMP LIGN; C
  10. C C
  11. C C
  12. C + COUL : COULEUR DE LA COURBE (FACULTATIVE) C
  13. C C
  14. C + CHPT : CHAMP-POINT C
  15. C C
  16. C + COMP : COMPOSANTE DU CHAMP POINT C
  17. C C
  18. C + LIGN : MAILLAGE D'UNE LIGNE (SEG2 ou SEG3) C
  19. C C
  20. C C
  21. C======================================================================
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8 (A-H,O-Z)
  24.  
  25. -INC CCNOYAU
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. -INC SMEVOLL
  29. -INC SMCHPOI
  30. -INC SMLREEL
  31. -INC SMELEME
  32. -INC SMCOORD
  33. -INC SMLMOTS
  34. -INC CCASSIS
  35.  
  36. EXTERNAL EVCHi
  37. COMMON/EVCHC/NBTHR,ICPR1,MCHPOI,CMOT1
  38.  
  39.  
  40. SEGMENT MVOL
  41. REAL*8 POSNO(JG)
  42. CHARACTER*(LONOM) NOMAB(JG)
  43. ENDSEGMENT
  44.  
  45. SEGMENT TTRAV
  46. INTEGER ILIS(IDIMM)
  47. ENDSEGMENT
  48.  
  49. SEGMENT ICPR1
  50. INTEGER IBIN1(nbpts),IBIN2(nbpts)
  51. REAL*8 XVAL1(nbpts)
  52. CHARACTER*(LONOM) CNOM2(nbpts)
  53. ENDSEGMENT
  54.  
  55. CHARACTER*(LOCOMP) CMOT1
  56. CHARACTER*(LONOM) CBLAN1
  57. CHARACTER*8 TYP1
  58. CHARACTER*(*) CMOT,NCHPT,NMAIL
  59. CHARACTER*11 UMOT1
  60. CHARACTER*12 UMOT2
  61. CHARACTER*5 UMOT3
  62. CHARACTER*72 TITRE
  63. REAL*8 PREC(3)
  64. LOGICAL NOMME,BCHP,BMAIL,BTHRD
  65.  
  66. C=======================================================================
  67.  
  68. CBLAN1 =' '
  69. TITRE ='CREE PAR EVOL CHPO'
  70. BCHP = NCHPT .EQ. CBLAN1
  71. BMAIL = NMAIL .EQ. CBLAN1
  72.  
  73. MCHPOI = IBOPOI
  74. MELEME = IPOI
  75. CALL LIGMAI(MELEME,TTRAV,1)
  76. IF(IERR.NE.0) RETURN
  77.  
  78. C Nombre de composantes du CHPOINT
  79. CALL NBCOMP(MCHPOI,'CHPOINT ',NBCO)
  80. IF(IERR.NE.0)RETURN
  81.  
  82. IF ( NBCO .EQ. 0)THEN
  83. CMOT1 = ' '
  84. ELSEIF(CMOT.EQ.' ')THEN
  85. IF(NBCO .EQ. 1)THEN
  86. MSOUPO = MCHPOI.IPCHP(1)
  87. CMOT1 = MSOUPO.NOCOMP(1)
  88. ELSE
  89. C Dans le cas ou il y a plusieurs composantes il faut en specifier 1
  90. CALL ERREUR(21)
  91. RETURN
  92. ENDIF
  93. ELSE
  94. CMOT1 = CMOT
  95. ENDIF
  96.  
  97. JG =TTRAV.ILIS(/1)
  98. SEGINI,MLREEL,MLREE1,ICPR1,MVOL
  99. NBTHR=NBTHRS
  100.  
  101. IF((NBTHR.EQ.1).OR.(NBTHRS.EQ.1).OR. (oothrd.GT.0)) THEN
  102. NBTHR = 1
  103. BTHRD =.FALSE.
  104. ELSE
  105. BTHRD =.TRUE.
  106. C Initialisation des threads
  107. CALL THREADII
  108. ENDIF
  109.  
  110. SEGACT ITABOC*MOD,ITABOD*MOD,ITABOB*MOD
  111. if(nbesc.ne.0) SEGACT,IPILOC
  112. IF(BTHRD) THEN
  113. C Lancement du travail en parallèle
  114. DO ith=2,NBTHR
  115. CALL THREADID(ith, EVCHi)
  116. ENDDO
  117. C Lancement du travail sur le maitre
  118. CALL EVCHi(1)
  119.  
  120. C Attente de la fin du travail des threads
  121. DO ith=2,NBTHR
  122. CALL THREADIF(ith)
  123. ENDDO
  124.  
  125. C Stop des threads
  126. CALL THREADIS
  127.  
  128. ELSE
  129. C Dans les ASSISTANTS ou en SEQUENTIEL on invoque directement la
  130. C SUBROUTINE qui fait le travail avec ses arguments
  131. ith=1
  132. CALL EVCH1(NBTHR,ith,ICPR1,MCHPOI,CMOT1)
  133. ENDIF
  134. if(nbesc.ne.0) SEGDES,IPILOC
  135.  
  136.  
  137. C BOUCLE SUR TOUS LES NOEUDS DE LA LIGNE
  138. C IBOC : Nombre de POINTS nommes
  139. IBOC =0
  140. ZMABS=0.D0
  141.  
  142. SEGACT,MCOORD
  143. DO INOLIG=1,JG
  144. NN=TTRAV.ILIS(INOLIG)
  145.  
  146. C Calcul de l'agscisse curviligne
  147. IF(INOLIG .EQ. 1) THEN
  148. DO IT=1,IDIM
  149. PREC(IT) = XCOOR((NN-1)*(IDIM+1) + IT)
  150. ENDDO
  151. ZMABS = 0.D0
  152.  
  153. ELSE
  154. TOTAL = 0.D0
  155. IDEB =(NN-1)*(IDIM+1)
  156. DO IT=1,IDIM
  157. XCOO = XCOOR(IDEB + IT)
  158. TOTAL = TOTAL + (XCOO - PREC(IT))**2
  159. PREC(IT) = XCOO
  160. ENDDO
  161. ZMABS = ZMABS + (TOTAL**0.5D0)
  162. ENDIF
  163.  
  164. C Le POINT est-il nomme
  165. NOMME=(ICPR1.IBIN2(NN) .EQ. 1)
  166. IF(NOMME)THEN
  167. IBOC =IBOC+1
  168. MVOL.POSNO (IBOC)=ZMABS
  169. MVOL.NOMAB (IBOC)=ICPR1.CNOM2(NN)
  170. ENDIF
  171.  
  172. IF(ICPR1.IBIN1(NN) .EQ. 1)THEN
  173. C Le POINT est dans le CHPOINT
  174. MLREE1.PROG(INOLIG)= ICPR1.XVAL1(NN)
  175. ELSE
  176. MLREE1.PROG(INOLIG)= 0.D0
  177. ENDIF
  178. MLREEL.PROG(INOLIG) = ZMABS
  179. ENDDO
  180. SEGDES,MCOORD
  181.  
  182. C Construction du resultat
  183. IF(IBOC.EQ.0) THEN
  184. N=1
  185. ELSE
  186. N=2
  187. ENDIF
  188. SEGINI,MEVOLL
  189. C
  190. C CREATION DU EVOL CONTENANT LES NOMS DES POINTS
  191. C
  192. IF(IBOC.NE.0) THEN
  193. SEGINI KEVOLL
  194. *MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM IIIIIII
  195. * DANS NOMAB ON A LES POINTS QUALIFIES IIIIIII
  196. * IBOC LE NOMBRE DE POINTS QUALIFIES IIII
  197. * DANS POSNO LA POSITION DES POINTS QUALIFIES IIII
  198. * MLREEL : ABSCISSE DES POINTS IIII
  199. * MLREE1 : ORDONNEE DES POINTS IIIIII
  200. JGN=LONOM
  201. JGM=IBOC
  202. SEGINI MLMOTS
  203. JG=IBOC
  204. SEGINI MLREE2
  205. IPROGX=MLREE2
  206. IPROGY=MLMOTS
  207. TYPX ='LISTREEL'
  208. TYPY ='LISTMOTS'
  209. IEVOLL(2)=KEVOLL
  210. NUMEVY='MARQ'
  211. NUMEVX=ICOUL
  212. NOMEVX='ABS'
  213. NOMEVY=CMOT1
  214. DO 9 I=1,IBOC
  215. MOTS(I) =MVOL.NOMAB(I)
  216. MLREE2.PROG(I)=MVOL.POSNO(I)
  217. 9 CONTINUE
  218. KEVTEX='POINTS NOMMES APPARTENANT A LA LIGNE'
  219. ENDIF
  220.  
  221.  
  222. SEGINI KEVOLL
  223. IEVOLL(1)= KEVOLL
  224. ITYEVO='REEL'
  225. TYPX ='LISTREEL'
  226. TYPY ='LISTREEL'
  227. IPROGX= MLREEL
  228. IPROGY= MLREE1
  229. IEVTEX= TITREE
  230. NOMEVX= 'ABS'
  231. NOMEVY= CMOT1
  232. NUMEVX= ICOUL
  233. NUMEVY= 'REEL'
  234. KEVTEX=TITRE
  235.  
  236. IF (BCHP .AND. BMAIL) THEN
  237. UMOT1= 'COMPOSANTE '
  238. UMOT2= ' DU CHPOINT '
  239. UMOT3= ' SUR '
  240. TITRE=UMOT1//CMOT1//UMOT2//NCHPT//UMOT3//NMAIL
  241. KEVTEX=TITRE
  242. ENDIF
  243. SEGSUP TTRAV,MVOL,ICPR1
  244. END
  245.  
  246.  
  247.  

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