Télécharger manuc3.eso

Retour à la liste

Numérotation des lignes :

manuc3
  1. C MANUC3 SOURCE PV090527 25/01/03 21:15:14 12111
  2. SUBROUTINE MANUC3(MLENT1,MLMOTS,IPOI,MONMOT,MLMOT3,MLMOT2,
  3. . LETYP,JER1,MLMOT4,ICHA)
  4. *------------------------------------------------------------------
  5. *
  6. * CREATION D'UN MCHAML
  7. *
  8. *------------------------------------------------------------------
  9. IMPLICIT INTEGER(I-N)
  10. -INC SMCHAML
  11. -INC SMLMOTS
  12. -INC SMLREEL
  13. -INC SMLENTI
  14. -INC SMMODEL
  15.  
  16. -INC PPARAM
  17. -INC CCOPTIO
  18. -INC SMCOORD
  19. *
  20. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  21. * -----------
  22. *
  23. * MLENT1 (E) POINTEURS SUR ZONES ELEMENTAIRES DE MAILLAGE
  24. * MLMOTS (E) POINTEUR SUR UN LISTMOTS CONTENANT LES NOMS
  25. * MLMOT3 (E) POINTEUR SUR UN LISTMOTS CONTENANT LES TYPES
  26. * MLMOT2 (E) POINTEUR SUR UN LISTMOTS CONTENANT LES TYPES
  27. * MLMOT4 (E) POINTEUR SUR UN LISTMOTS CONTENANT LES NOMS
  28. * DES CONSTITUANTS
  29. * IPOI (E) POINTEUR SUR UN LISTENTI OU UN LISTREEL
  30. * MONMOT (E) MOT DE 8 CARACTERES
  31. * LETYP (E) TYPE DU MCHAML A CREER
  32. * JER1 (E) LONGUEUR DE LA CHAINE DE CARACTERES
  33. * ICHA (S) POINTEUR SUR LE MCHAML RESULTAT
  34. *
  35. * LANGAGE:
  36. * --------
  37. *
  38. * ESOPE + FORTRAN77
  39. *
  40. ************************************************************************
  41. *
  42. SEGMENT MPTVAL
  43. INTEGER IPOS(NS) ,NSOF(NS)
  44. INTEGER IVAL(NCOSOU)
  45. CHARACTER*16 TYVAL(NCOSOU)
  46. ENDSEGMENT
  47. *
  48. SEGMENT NOTYPE
  49. CHARACTER*16 TYPE(NBTYPE)
  50. ENDSEGMENT
  51. *
  52. *
  53. PARAMETER ( N3=6 )
  54. PARAMETER (NINF=3)
  55. CHARACTER*8 MONMOT
  56. CHARACTER*(NCONCH) CONM
  57. CHARACTER*4 CAR,CAR2
  58. CHARACTER*(*) LETYP
  59. DIMENSION INFOS(NINF)
  60. NCOUCH=0
  61. *
  62. * RECHERCHE DES ZONES DE MAILLAGE ELEMENTAIRES
  63. *
  64. SEGACT,MLENT1
  65. N1=MLENT1.LECT(/1)
  66. INFOS(1) = 0
  67. INFOS(2) = 0
  68. INFOS(3) = NIFOUR
  69. *
  70. * INITIALISATION DU SEGMENT MCHELM
  71. *
  72. L1=JER1
  73. SEGINI,MCHELM
  74. ICHA=MCHELM
  75. TITCHE=LETYP
  76. IFOCHE=IFOUR
  77. *
  78. SEGACT,MLMOTS
  79. SEGACT,MLMOT3
  80. SEGACT,MLMOT2
  81. SEGACT,MLMOT4
  82. N2=MOTS(/2)
  83. IF(MONMOT.EQ.'REAL*8 ') THEN
  84. MLREEL=IPOI
  85. SEGACT,MLREEL
  86. ELSE
  87. MLENTI=IPOI
  88. SEGACT,MLENTI
  89. ENDIF
  90. *
  91. * BOUCLE SUR LES ZONES ELEMENTAIRES DU MAILLAGE
  92. *
  93. DO 20 I=1,N1
  94. IPMAIL = MLENT1.LECT(I)
  95. CONCHE(I)= MLMOT4.MOTS(I)
  96. IMACHE(I)= IPMAIL
  97. INFCHE(I,1) = 0
  98. INFCHE(I,2) = NCOUCH
  99. INFCHE(I,3) = NIFOUR
  100. INFCHE(I,4) = 0
  101. INFCHE(I,5) = 0
  102. INFCHE(I,6) = 1
  103. SEGINI,MCHAML
  104. ICHAML(I)=MCHAML
  105. *
  106. DO 10 IN=1,N2
  107. NOMCHE(IN)=MOTS(IN)
  108. IF (MONMOT.EQ.'REAL*8 ') THEN
  109. TYPCHE(IN)=MONMOT(1:6)
  110. N1PTEL=1
  111. N1EL=1
  112. N2PTEL=0
  113. N2EL=0
  114. ELSE
  115. CAR =MLMOT3.MOTS(IN)
  116. CAR2=MLMOT2.MOTS(IN)
  117. *
  118. * TRAITEMENT PARTICULIER POUR LE TYPE 'MCHAML'
  119. *
  120. IF (CAR.EQ.'MCHA') THEN
  121. IPT = LECT(IN)
  122. CALL QUESUP(0,IPT,0,0,ISUP,IRET)
  123. IF(IERR.NE.0)THEN
  124. SEGSUP MCHAML
  125. GOTO 99
  126. ENDIF
  127. IF (ISUP.NE.1)THEN
  128. MCHEL1=IPT
  129. SEGACT MCHEL1
  130. MOTERR(1:8)=MCHEL1.TITCHE
  131. CALL ERREUR(124)
  132. SEGSUP MCHAML
  133. GOTO 99
  134. ENDIF
  135. NBROBL=1
  136. NBRFAC=0
  137. SEGINI NOMID
  138. MOTAUX=NOMID
  139. LESOBL(1)=NOMCHE(IN)
  140. NBTYPE=1
  141. SEGINI NOTYPE
  142. MOTYPE=NOTYPE
  143. TYPE(1)=' '
  144. CONM=CONCHE(I)
  145. CALL KOMCHA(IPT,IPMAIL,CONM,MOTAUX,MOTYPE,1,INFOS,3,IVAAUX)
  146. SEGSUP NOTYPE
  147. IF (IERR.NE.0)THEN
  148. SEGSUP MCHAML
  149. GOTO 99
  150. ENDIF
  151. MPTVAL=IVAAUX
  152. TYPCHE(IN)=TYVAL(1)
  153. MELVA1 = IVAL(1)
  154. SEGINI,MELVAL=MELVA1
  155. IELVAL(IN) = MELVAL
  156. GO TO 10
  157. ENDIF
  158. *
  159. TYPCHE(IN)='POINTEUR'//CAR(1:4)//CAR2(1:4)
  160. N1PTEL=0
  161. N1EL=0
  162. N2PTEL=1
  163. N2EL=1
  164. ENDIF
  165. *
  166. * INITIALISATION DU SEGMENT MELVAL
  167. *
  168. SEGINI,MELVAL
  169. IELVAL(IN)=MELVAL
  170. IF (MONMOT.EQ.'REAL*8 ') THEN
  171. VELCHE(N1PTEL,N1EL)=PROG(IN)
  172. ELSE
  173. IELCHE(N2PTEL,N2EL)=LECT(IN)
  174. ENDIF
  175. 10 CONTINUE
  176. * END DO
  177. 20 CONTINUE
  178. * END DO
  179. *
  180. 99 CONTINUE
  181. *
  182. IF(IERR.NE.0) SEGSUP,MCHELM
  183. *
  184. END
  185.  
  186.  
  187.  
  188.  

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