Télécharger tycomp.eso

Retour à la liste

Numérotation des lignes :

tycomp
  1. C TYCOMP SOURCE CB215821 24/04/12 21:17:23 11897
  2.  
  3. C----------------------------------------------------------------------C
  4. C
  5. C Ce ss-programme identifie le type d'un MCHAML
  6. C associe au nom de sa composante MOT1
  7. C dans le SEGMENT NOMID du MMODEL IPMOD1
  8. C (voir notice REDU)
  9. C
  10. C Entrees :
  11. C IPMOD1 : pointeur su SEGMENT NOMID, suppose actif en entree
  12. C MOT1 : nom de composante a identifier
  13. C
  14. C Sorties :
  15. C TYPE : type du MCHAML identifie
  16. C LTYP : longueur de la chaine de caractere "TYPE"
  17. C
  18. C----------------------------------------------------------------------C
  19. SUBROUTINE TYCOMP(IPMOD1,MOT1,TYPE,LTYP)
  20.  
  21. IMPLICIT REAL*8(A-H,O-Z)
  22. IMPLICIT INTEGER(I-N)
  23.  
  24.  
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. -INC SMCHAML
  28. -INC SMMODEL
  29.  
  30. PARAMETER (NMOT=15,NNOMID=20,NPAR=4)
  31. CHARACTER*(50) TYPE
  32. CHARACTER*(25) LISTIT(NMOT)
  33. INTEGER LONTIT(NMOT)
  34. CHARACTER*(*) MOT1
  35. CHARACTER*(LOCOMP) MOCP,MOT
  36. CHARACTER*(4) NOMPAR(NPAR)
  37. DIMENSION INOMID(NNOMID)
  38.  
  39. DATA LISTIT / 'DEPLACEMENTS', 'FORCES' , 'TEMPERATURES',
  40. & 'GRADIENT' , 'DEFORMATIONS',
  41. & 'CONTRAINTES' , 'CONTRAINTES PRINCIPALES',
  42. & 'DEFORMATIONS INELASTIQUES', 'VARIABLES INTERNES',
  43. & 'CARACTERISTIQUES','GRADIENT DE FLEXION',' ',
  44. & 'MATRICE DE HOOKE','SCALAIRE',
  45. & 'MATRICE DE RAYONNEMENT'/
  46. DATA LONTIT / 12,6 ,12,
  47. & 8 ,12,
  48. & 11,23,
  49. & 25,18,
  50. & 16,19,1,
  51. & 16,8,
  52. & 22 /
  53.  
  54. C On identifie le numero dans la liste de NOMID au type dans LISTIT
  55. * 'DEPLACEM', 'FORCES ', 'GRADIENT', 'CONTRAIN',
  56. DATA INOMID / 1 , 2 , 4 , 6 ,
  57. * 'DEFORMAT', 'MATERIAU', 'CARACTER', 'TEMPERAT',
  58. & 5 , 10 , 10 , 3 ,
  59. * 'PRINCIPA', 'VARINTER', 'GRAFLEXI', 'VINMETAL',
  60. & 7 , 9 , 11 , 12 ,
  61. * 'DEFINELA', 'PARAMEXT', 'VIDE ', 'SCAL ',
  62. & 8 , 12 , 12 , 14 ,
  63. * 'TEMP ', 'MAHO ', 'MIDL ', 'SURF '/
  64. & 14 , 13 , 15 , 15 /
  65.  
  66. C Verifications elementaires
  67. C Pas de soucis pour renvoyer valeurs pas defaut
  68. IF (IPMOD1.EQ.0) RETURN
  69.  
  70. LM1 = 0
  71. DO II = 8,1,-1
  72. IF(MOT1(II:II) .NE. ' ')THEN
  73. LM1=II
  74. GOTO 100
  75. ENDIF
  76. ENDDO
  77. RETURN
  78.  
  79. 100 CONTINUE
  80. * write(6,*) 'MOT1 dans tycomp',mot1
  81.  
  82. IMODEL = IPMOD1
  83. NNO = IMODEL.LNOMID(/1)
  84. IF (NNO.EQ.0) RETURN
  85.  
  86. C Boucle sur les NOMID
  87.  
  88. MOCP = MOT1
  89. TYPE = ' '
  90. LTYP = 0
  91.  
  92. DO INO=1,NNO
  93. NOMID = IMODEL.LNOMID(INO)
  94. IF (NOMID.NE.0) THEN
  95. C Composantes OBLIGATOIRES
  96. nobl=nomid.lesobl(/2)
  97. DO iobl=1,nobl
  98. mot=lesobl(iobl)
  99. IF (mot.EQ.mocp) THEN
  100. indno=INOMID(ino)
  101. type =LISTIT(indno)
  102. ltyp =LONTIT(indno)
  103. RETURN
  104. ENDIF
  105. ENDDO
  106.  
  107. C Composantes FACULTATIVES
  108. nfac=nomid.lesfac(/2)
  109. DO ifac=1,nfac
  110. mot=lesfac(ifac)
  111. IF (mot.EQ.mocp) THEN
  112. indno=INOMID(ino)
  113. type =LISTIT(indno)
  114. ltyp =LONTIT(indno)
  115. RETURN
  116. ENDIF
  117. ENDDO
  118. ENDIF
  119. ENDDO
  120.  
  121. C Cas particulier (a ajouter dans inomid.eso et augmenter la taille du SMMODEL.INC...)
  122. IF(MOCP.EQ.'MIDL')THEN
  123. ino =19
  124. indno=INOMID(ino)
  125. type =LISTIT(indno)
  126. ltyp =LONTIT(indno)
  127.  
  128. ELSEIF(MOCP.EQ.'SURF')THEN
  129. ino =20
  130. indno=INOMID(ino)
  131. type =LISTIT(indno)
  132. ltyp =LONTIT(indno)
  133.  
  134. ELSEIF(MOCP.EQ.'MAHO')THEN
  135. ino =18
  136. indno=INOMID(ino)
  137. type =LISTIT(indno)
  138. ltyp =LONTIT(indno)
  139.  
  140. ENDIF
  141.  
  142. END
  143.  
  144.  
  145.  

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