Télécharger novard.eso

Retour à la liste

Numérotation des lignes :

novard
  1. C NOVARD SOURCE MB234859 25/08/04 21:15:35 12339
  2. SUBROUTINE NOVARD(IPO1,CNOMV)
  3.  
  4. C************************************************************************
  5. C *
  6. C RECHERCHE DES NOMS DE | COMPOSANTES *
  7. C DE | PHASES *
  8. C ----------------------------------- *
  9. C *
  10. C OBJET3 = NOVARD OBJET1 OBJET2 *
  11. C *
  12. C OBJET1: TYPE MODELE *
  13. C OBJET2: TYPE CHARACTER*4 *
  14. C *
  15. C OBJET3: TYPE LISTE DE MOTS *
  16. C *
  17. C L'objet 2 définit le type de variables dont on veut connaître *
  18. C le nom des composantes.Il existe 11 mots clefs différents: *
  19. C *
  20. C GEOM : Nom des composantes des caractéristiques géométriques *
  21. C CONT : Nom des composantes de contraintes *
  22. C DEFO : Nom des composantes de deformation *
  23. C DEPL : Nom des composantes de déplacement *
  24. C FORC : Nom des composantes de force *
  25. C GRAD : Nom des composantes de gradient *
  26. C GRAF : Nom des composantes de gradient en flexion *
  27. C MATE : Nom des composantes de matériau *
  28. C CONP : Nom des composantes des contraintes principales *
  29. C TEMP : Nom des composantes de température *
  30. C VARI : Nom des composantes de variable interne *
  31. C *
  32. C REMARQUE : Les noms des composantes de vitesse et de matériau en *
  33. C thermique ne sont pas disponibles:en effet les sous-programmes *
  34. C IDMAT1 et IDVITE n'existent plus! *
  35. C *
  36. C************************************************************************
  37.  
  38. IMPLICIT INTEGER(I-N)
  39. IMPLICIT REAL*8(A-H,O-Z)
  40.  
  41.  
  42. -INC PPARAM
  43. -INC CCOPTIO
  44.  
  45. -INC SMLMOTS
  46. -INC SMMODEL
  47.  
  48. CHARACTER*(*) CNOMV
  49. CHARACTER*(LOCOMP) CNOMW
  50. CHARACTER*(LCONMO) CONS1
  51.  
  52. C* Increment sur la dimension de la liste des composantes recherchees
  53. PARAMETER ( INCJGM = 100 )
  54.  
  55. PARAMETER ( NNOMV = 15 )
  56. CHARACTER*4 LNOMV(NNOMV)
  57. DATA LNOMV / 'DEPL', 'FORC', 'GRAD', 'CONT', 'DEFO',
  58. & 'MATE', 'GEOM', 'TEMP', 'CONP', 'VARI',
  59. & 'GRAF', '....', 'DEIN', 'PARA', 'PHAS' /
  60.  
  61. C********************* LECTURE DES DONNEES **************************
  62. MMODEL = IPO1
  63. NSM = KMODEL(/1)
  64.  
  65. JGN = LOCOMP
  66. JGM = INCJGM
  67. SEGINI,MLMOTS
  68.  
  69. NBCTOT = 0
  70.  
  71. DO 10 ISOUS = 1, NSM
  72. IMODEL = KMODEL(ISOUS)
  73. C* write(ioimp,*) ' novard lnomid',(lnomid(iou),iou=1,14)
  74. C* write(ioimp,*) ' cnomv' , cnomv
  75.  
  76. CALL PLACE(LNOMV,NNOMV,iplac,CNOMV)
  77. IF (iplac.EQ.0 ) GOTO 11
  78. IF (iplac.EQ.15) THEN
  79. CONS1=CONMOD
  80. IF(CONS1(17:24).EQ.' ') GOTO 11
  81. IF(NBCTOT.EQ.0) THEN
  82. NBCTOT=NBCTOT+1
  83. MOTS(NBCTOT) = CONS1(17:24)
  84. ELSE
  85. CALL PLACE(MOTS,NBCTOT,iplac2,CONS1(17:24))
  86. IF (iplac2.EQ.0) THEN
  87. NBCTOT=NBCTOT+1
  88. IF(NBCTOT.GT.JGM) THEN
  89. JGM=JGM+INCJGM
  90. SEGADJ,MLMOTS
  91. ENDIF
  92. MOTS(NBCTOT) = CONS1(17:24)
  93. ENDIF
  94. ENDIF
  95.  
  96. ELSE
  97. ipnomc = lnomid(iplac)
  98. C*-DEBUT ancien code
  99. C* MELE = NEFMOD
  100. C* MFR = NUMMFR(MELE)
  101. C********* APPEL LE SOUS-PROGRAMME CORRESPONDANT AU MOT-CLEF *********
  102. C* GOTO (101,102,103,104,105,106,107,108,109,110,
  103. C* & 111,112,113,115),iplac
  104. C* 101 CALL IDDEPL(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  105. C* GOTO 20
  106. C* 102 CALL IDFORC(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  107. C* GOTO 20
  108. C* 103 CALL IDGRAD(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  109. C* GOTO 20
  110. C* 104 CALL IDCONT(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  111. C* GOTO 20
  112. C* 105 CALL IDDEFO(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  113. C* GOTO 20
  114. C* 106 CALL IDMATR(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  115. C* GOTO 20
  116. C* 107 CALL IDCARB(MELE,IFOUR,IPNOMC,NBROBL,NBRFAC)
  117. C* GOTO 20
  118. C* 108 CALL IDTEMP(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  119. C* GOTO 20
  120. C* 109 CALL IDPRIN(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  121. C* GOTO 20
  122. C* 110 CALL IDVARI(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  123. C* GOTO 20
  124. C* 111 CALL IDGRAF(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  125. C* GOTO 20
  126. C* 112 IPNOMC=0
  127. C* GOTO 20
  128. C* 113 IPNOMC=0
  129. C* GOTO 20
  130. C* 114 CALL IDPAEX(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  131. C* GOTO 20
  132. C* 20 CONTINUE
  133. C*-FIN ancien code
  134. C* write(ioimp,*) ' ipnomc', ipnomc
  135. IF (ipnomc.EQ.0) GOTO 11
  136. NOMID = ipnomc
  137. NBROBL = lesobl(/2)
  138. NBRFAC = lesfac(/2)
  139. NBCOMP = NBROBL + NBRFAC
  140. IF (NBCOMP.EQ.0) GOTO 12
  141. JGMTOT = NBCTOT + NBCOMP
  142. IF (JGMTOT.GT.JGM) THEN
  143. JGM = ((JGMTOT / INCJGM) + 1) * INCJGM
  144. SEGADJ,MLMOTS
  145. ENDIF
  146. IF (ISOUS.EQ.1) THEN
  147. DO I = 1, NBCOMP
  148. IF (I.LE.NBROBL) THEN
  149. MOTS(NBCTOT+I) = LESOBL(I)
  150. ELSE
  151. MOTS(NBCTOT+I) = LESFAC(I-NBROBL)
  152. ENDIF
  153. ENDDO
  154. ELSE
  155. ICOMP = 0
  156. DO I = 1, NBCOMP
  157. IF (I.LE.NBROBL) THEN
  158. CNOMW = LESOBL(I)
  159. ELSE
  160. CNOMW = LESFAC(I-NBROBL)
  161. ENDIF
  162. CALL PLACE(MOTS,NBCTOT+ICOMP,iplac,CNOMW)
  163. IF (iplac.EQ.0) THEN
  164. ICOMP = ICOMP + 1
  165. MOTS(NBCTOT+ICOMP) = CNOMW
  166. ENDIF
  167. ENDDO
  168. JGMTOT = NBCTOT + ICOMP
  169. ENDIF
  170. NBCTOT = JGMTOT
  171. 12 CONTINUE
  172. ENDIF
  173.  
  174. 11 CONTINUE
  175. 10 CONTINUE
  176.  
  177. C* IF (NBCTOT.EQ.0) THEN
  178. C* CALL ERREUR(643)
  179. C* SEGSUP,MLMOTS
  180. C* ELSE
  181. IF (JGM.NE.NBCTOT) THEN
  182. JGM = NBCTOT
  183. SEGADJ,MLMOTS
  184. ENDIF
  185. SEGACT,MLMOTS
  186. CALL ECROBJ('LISTMOTS',MLMOTS)
  187. C* ENDIF
  188.  
  189. RETURN
  190. END
  191.  
  192.  
  193.  
  194.  

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