Télécharger rten.eso

Retour à la liste

Numérotation des lignes :

rten
  1. C RTEN SOURCE PV 20/03/31 14:34:04 10567
  2. SUBROUTINE RTEN
  3. C=======================================================================
  4. C
  5. C >>> Changement de repere d'un tenseur <<<
  6. C >>> de contraintes ou de deformations <<<
  7. C
  8. C CHAM2 = RTEN CHAM1 MODL1 ...
  9. C
  10. C ... | W1 (W2) ;
  11. C | CHAM3 ;
  12. C | (CHAM3) | 'POLA' CENTR1 ;
  13. C | 'SPHE' CENTR1 AXEI1 ;
  14. C | 'CYLI' CENTR1 AXEI1 ;
  15. C | 'TORI' | ('CART') CENTR1 AXEI1 ;
  16. C | 'CIRC' CENTR1 AXEI1 CENTR2 ;
  17. C
  18. C CHAM1 = MCHAML de sous type CONTRAINTES ou DEFORMATIONS
  19. C MODL1 = objet de type MMODEL
  20. C W1,W2 = objets de type POINT
  21. C CHAM3 = objet de type MCHAML de sous type CARACTERISTIQUES
  22. C CHAM2 = MCHAML de sous type CONTRAINTES ou DEFORMATIONS
  23. C CENTR1 = objet de type POINT
  24. C AXEI1 = objet de type POINT
  25. C CENTR2 = objet de type POINT
  26. C
  27. C=======================================================================
  28. IMPLICIT INTEGER(I-N)
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC SMCHAML
  33. -INC SMCOORD
  34. *
  35. CHARACTER*4 MOCLE1(4),MOCLE2(2),MOCLE3(2),MOTALL(8),CMOT
  36. DATA MOCLE1 /'POLA','CYLI','SPHE','TORI'/
  37. DATA MOCLE2 /'CART','CIRC'/
  38. DATA MOCLE3 /'RTAR','RART'/
  39.  
  40. DATA MOTALL /'POLA','CYLI','SPHE','TORI',
  41. & 'CART','CIRC',
  42. & 'RTAR','RART'/
  43. *
  44. segact mcoord
  45. ICAS =0
  46. IPCHE =0
  47. IMOT =0
  48. IPTV1 =0
  49. IPTV2 =0
  50. IPTV3 =0
  51. IPMODL=0
  52. IPCHAM=0
  53. IRET =0
  54. JMOT =0
  55. IGRAD =0
  56. KMOT =0
  57. IRTP9 =0
  58. C
  59. C Lecture d'un champ par point
  60. C
  61. CALL LIROBJ('CHPOINT', MCHPOI, 0, IRET)
  62. IF (IERR.NE.0) RETURN
  63. IF (IRET .NE. 0) THEN
  64. CALL RDEPLA(MCHPOI)
  65. GOTO 100
  66. ENDIF
  67. C
  68. C Lecture d'un modele
  69. C
  70. CALL LIROBJ('MMODEL',IPMODL,1,IRTM)
  71. IF (IERR.NE.0) RETURN
  72. CALL ACTOBJ('MMODEL ',IPMODL,1)
  73. C
  74. C Lecture d'un mchaml
  75. C
  76. CALL LIROBJ('MCHAML',IPIN,1,IRT)
  77. IF (IERR.NE.0) RETURN
  78. CALL ACTOBJ('MCHAML ',IPIN,1)
  79. CALL REDUAF(IPIN,IPMODL,IPCHE,0,IR,KER)
  80. IF(IR .NE. 1) CALL ERREUR(KER)
  81. IF(IERR .NE. 0) RETURN
  82. C
  83. C Lecture facultatice d'un second mchaml
  84. C
  85. CALL LIROBJ('MCHAML',IPIN,0,IRT1)
  86. IF (IERR.NE.0) RETURN
  87. IPCHE1=0
  88. IF (IRT1 .EQ. 1) THEN
  89. CALL ACTOBJ('MCHAML ',IPIN,1)
  90. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  91. IF(IR .NE. 1) CALL ERREUR(KER)
  92. IF(IERR .NE. 0) RETURN
  93.  
  94. MCHELM=IPCHE
  95. C
  96. C Le mchaml des reperes est mis en second s'il le faut
  97. C
  98. IF (TITCHE.NE.'DEFORMATIONS INELASTIQUES'.AND.
  99. & TITCHE.NE.'DEFORMATIONS'.AND.
  100. & TITCHE.NE.'CONTRAINTES'.AND.
  101. & TITCHE.NE.'VARIABLES INTERNES') THEN
  102. IPXXX=IPCHE
  103. IPCHE=IPCHE1
  104. IPCHE1=IPXXX
  105. ENDIF
  106. *
  107. * s'agit-il d'un champ de gradient ?
  108. *
  109. MCHELM=IPCHE1
  110. IF (TITCHE.EQ.'GRADIENT') THEN
  111. IGRAD=1
  112. C
  113. C Lecture facultative d'un mot-cle
  114. C
  115. CALL LIRMOT (MOCLE3,2,KMOT,0)
  116. IF (IERR.NE.0) RETURN
  117. IF (KMOT.EQ.0) KMOT=1
  118. GO TO 50
  119. ENDIF
  120. ENDIF
  121. C
  122. C Lecture facultative d'un mot-cle
  123. C
  124. CALL LIRCHA(CMOT,0,IRETOU)
  125. IF (IERR.NE.0) RETURN
  126. IF (IRETOU .NE. 0) THEN
  127. CALL PLACE(MOTALL,4,IMOT0,CMOT)
  128. IF (IERR.NE.0) RETURN
  129. IF(IMOT0 .EQ. 0)THEN
  130. CALL ERREUR(21)
  131. RETURN
  132. ENDIF
  133. CALL REFUS
  134. IF (IERR.NE.0) RETURN
  135. ENDIF
  136.  
  137. CALL LIRMOT (MOCLE1,4,IMOT,0)
  138. IF (IERR.NE.0) RETURN
  139. C
  140. IF (IMOT.EQ.0) THEN
  141. C
  142. C Cas des reperes cartesien et orthotrope
  143. C
  144. C Lecture facultative d'un premier point
  145. C
  146. CALL LIROBJ('POINT',IPTV1,0,IRTP9)
  147. IF (IERR.NE.0) RETURN
  148. IF (IRTP9.NE.0) THEN
  149. C
  150. C Lecture facultative d'un second point
  151. C
  152. CALL LIROBJ('POINT',IPTV2,0,IRTP2)
  153. IF(IERR.NE.0) RETURN
  154. ENDIF
  155. ELSE
  156. C
  157. C Cas des autres reperes (avec mot-cle)
  158. C
  159. C Lecture facultative d'un second mot-cle
  160. C
  161. IF (IMOT.EQ.4) THEN
  162. CALL LIRMOT(MOCLE2,2,JMOT,0)
  163. IF (IERR.NE.0) RETURN
  164. ENDIF
  165. C
  166. C Lecture obligatoire d'un premier point
  167. C
  168. CALL LIROBJ('POINT',IPTV1,1,IRTP1)
  169. IF (IERR.NE.0) RETURN
  170. C
  171. C Lecture facultative d'un second point
  172. C
  173. CALL LIROBJ('POINT',IPTV2,0,IRTP2)
  174. IF (IERR.NE.0) RETURN
  175. IF (IRTP2.EQ.0) THEN
  176. C
  177. C Un seul point : 'POLA'
  178. C
  179. IF (IMOT.NE.1) THEN
  180. CALL ERREUR(641)
  181. RETURN
  182. ENDIF
  183. ELSE IF (IMOT.EQ.4) THEN
  184. C
  185. C Autre mot-cle possible : 'TORI'
  186. C
  187. IF (JMOT.EQ.2) THEN
  188. C
  189. C Troisieme point obligatoire : 'TORI' 'CIRC'
  190. C
  191. CALL LIROBJ('POINT',IPTV3,1,IRTP3)
  192. IF (IERR.NE.0) RETURN
  193. ELSE
  194. C
  195. C Pas de troisieme point : 'TORI' 'CART'
  196. C
  197. IMOT=5
  198. ENDIF
  199. ENDIF
  200. ENDIF
  201. C
  202. 50 CONTINUE
  203. C
  204. IF (IMOT.NE.0) THEN
  205. ICAS = 3
  206. ELSE
  207. ICAS = 2
  208. IF (IRTP9.EQ.0) ICAS = 1
  209. ENDIF
  210. IF(IGRAD.EQ.1) ICAS=4
  211. C
  212. C Appel au module de calcul
  213. C
  214. CALL RTENS(IPCHE,IPMODL,IMOT,KMOT,
  215. & IPTV1,IPTV2,IPTV3,IPCHE1,ICAS,IPCHAM)
  216. C
  217. IF (IERR.EQ.0) THEN
  218. CALL ACTOBJ('MCHAML ',IPCHAM,1)
  219. CALL ECROBJ('MCHAML ',IPCHAM)
  220. ENDIF
  221. 100 CONTINUE
  222. END
  223.  
  224.  
  225.  
  226.  

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