Télécharger manuc3.eso

Retour à la liste

Numérotation des lignes :

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

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