Télécharger novard.eso

Retour à la liste

Numérotation des lignes :

novard
  1. C NOVARD SOURCE OF166741 24/10/07 21:15:38 12016
  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* NPINT=INFMOD(1)
  100. C* MELE = NEFMOD
  101. C* MFR = NUMMFR(MELE)
  102. C********* APPEL LE SOUS-PROGRAMME CORRESPONDANT AU MOT-CLEF *********
  103. C* GOTO (101,102,103,104,105,106,107,108,109,110,
  104. C* & 111,112,113,115),iplac
  105. C* 101 CALL IDDEPL(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  106. C* GOTO 20
  107. C* 102 CALL IDFORC(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  108. C* GOTO 20
  109. C* 103 CALL IDGRAD(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  110. C* GOTO 20
  111. C* 104 CALL IDCONT(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  112. C* GOTO 20
  113. C* 105 CALL IDDEFO(IMODEL,IFOUR,IPNOMC,NBROBL,NBRFAC)
  114. C* GOTO 20
  115. C* 106 CALL IDMATR(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  116. C* GOTO 20
  117. C* 107 CALL IDCARB(MELE,IFOUR,IPNOMC,NBROBL,NBRFAC)
  118. C* GOTO 20
  119. C* 108 CALL IDTEMP(MFR,IFOUR,NPINT,IPNOMC,NBROBL,NBRFAC)
  120. C* GOTO 20
  121. C* 109 CALL IDPRIN(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  122. C* GOTO 20
  123. C* 110 CALL IDVARI(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  124. C* GOTO 20
  125. C* 111 CALL IDGRAF(MFR,IFOUR,IPNOMC,NBROBL,NBRFAC)
  126. C* GOTO 20
  127. C* 112 IPNOMC=0
  128. C* GOTO 20
  129. C* 113 IPNOMC=0
  130. C* GOTO 20
  131. C* 114 CALL IDPAEX(MFR,IMODEL,IPNOMC,NBROBL,NBRFAC)
  132. C* GOTO 20
  133. C* 20 CONTINUE
  134. C*-FIN ancien code
  135. C* write(ioimp,*) ' ipnomc', ipnomc
  136. IF (ipnomc.EQ.0) GOTO 11
  137. NOMID = ipnomc
  138. NBROBL = lesobl(/2)
  139. NBRFAC = lesfac(/2)
  140. NBCOMP = NBROBL + NBRFAC
  141. IF (NBCOMP.EQ.0) GOTO 12
  142. JGMTOT = NBCTOT + NBCOMP
  143. IF (JGMTOT.GT.JGM) THEN
  144. JGM = ((JGMTOT / INCJGM) + 1) * INCJGM
  145. SEGADJ,MLMOTS
  146. ENDIF
  147. IF (ISOUS.EQ.1) THEN
  148. DO I = 1, NBCOMP
  149. IF (I.LE.NBROBL) THEN
  150. MOTS(NBCTOT+I) = LESOBL(I)
  151. ELSE
  152. MOTS(NBCTOT+I) = LESFAC(I-NBROBL)
  153. ENDIF
  154. ENDDO
  155. ELSE
  156. ICOMP = 0
  157. DO I = 1, NBCOMP
  158. IF (I.LE.NBROBL) THEN
  159. CNOMW = LESOBL(I)
  160. ELSE
  161. CNOMW = LESFAC(I-NBROBL)
  162. ENDIF
  163. CALL PLACE(MOTS,NBCTOT+ICOMP,iplac,CNOMW)
  164. IF (iplac.EQ.0) THEN
  165. ICOMP = ICOMP + 1
  166. MOTS(NBCTOT+ICOMP) = CNOMW
  167. ENDIF
  168. ENDDO
  169. JGMTOT = NBCTOT + ICOMP
  170. ENDIF
  171. NBCTOT = JGMTOT
  172. 12 CONTINUE
  173. ENDIF
  174.  
  175. 11 CONTINUE
  176. 10 CONTINUE
  177.  
  178. C* IF (NBCTOT.EQ.0) THEN
  179. C* CALL ERREUR(643)
  180. C* SEGSUP,MLMOTS
  181. C* ELSE
  182. IF (JGM.NE.NBCTOT) THEN
  183. JGM = NBCTOT
  184. SEGADJ,MLMOTS
  185. ENDIF
  186. SEGACT,MLMOTS
  187. CALL ECROBJ('LISTMOTS',MLMOTS)
  188. C* ENDIF
  189.  
  190. RETURN
  191. END
  192.  
  193.  
  194.  

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