Télécharger novard.eso

Retour à la liste

Numérotation des lignes :

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

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