Télécharger fptuya.eso

Retour à la liste

Numérotation des lignes :

fptuya
  1. C FPTUYA SOURCE OF166741 24/10/03 21:15:18 12022
  2. SUBROUTINE FPTUYA(IPMODL,IPCHE1,IPTFP,IRET)
  3. C____________________________________________________________________
  4. C
  5. C CALCULE LES FORCES DE PRESSIONS APPLIQUEES SUR DES TUYAUX
  6. C ( EFFET DE FOND ) APPELE PAR PRESSI
  7. C
  8. C
  9. C ENTREES :
  10. C ---------
  11. C
  12. C IPCHE1 POINTEUR SUR UN MCHAML DE CARACTERISTIQUES
  13. C IPMODL POINTEUR SUR UN MMODEL
  14. C
  15. C SORTIES
  16. C
  17. C
  18. C IPTFP CHPOINT DES FORCES NODALES EQUIVALENTES
  19. C IRET 1 OU 0 SI SUCCES OU NON
  20. C
  21. C M. PETIT NOVEMBRE 89
  22. C PASSAGE AUX NOUVEAU CHAMELEM PAR JM CAMPENON LE 04 09 90
  23. C
  24. C_____________________________________________________________________
  25. C
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8(A-H,O-Z)
  28.  
  29. -INC PPARAM
  30. -INC CCOPTIO
  31. -INC CCREEL
  32.  
  33. -INC SMCOORD
  34. -INC SMELEME
  35. -INC SMMODEL
  36. -INC SMCHAML
  37. -INC SMINTE
  38.  
  39. SEGMENT NOTYPE
  40. CHARACTER*16 TYPE(NBTYPE)
  41. ENDSEGMENT
  42.  
  43. SEGMENT MPTVAL
  44. INTEGER IPOS(NS) ,NSOF(NS)
  45. INTEGER IVAL(NCOSOU)
  46. CHARACTER*16 TYVAL(NCOSOU)
  47. ENDSEGMENT
  48.  
  49. CHARACTER*(NCONCH) CONM
  50. PARAMETER ( NINF=3 )
  51. INTEGER INFOS(NINF)
  52.  
  53. IRET = 0
  54. IPTFP = 0
  55.  
  56. NHRM = NIFOUR
  57. C
  58. C VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES
  59. C
  60. CALL QUESUP(IPMODL,IPCHE1,3,0,ISUP,IRETCA)
  61. IF (ISUP.GT.1) RETURN
  62. C
  63. C ACTIVATION DU MODELE
  64. C
  65. MMODEL = IPMODL
  66. SEGACT,MMODEL
  67. NSOUS = mmodel.KMODEL(/1)
  68. C
  69. C CREATION D UN MCHELM INTERMEDIAIRE
  70. C
  71. N1=NSOUS
  72. L1=5
  73. N3=6
  74. SEGINI,MCHELM
  75. mchelm.TITCHE='FORCE'
  76. mchelm.IFOCHE=IFOUR
  77. C
  78. C SEGMENTS DE TRAVAIL :
  79. C CARACTERISTIQUES POUR LES TUYAUX
  80. NBROBL = 3
  81. NBRFAC = 4
  82. SEGINI NOMID
  83. LESOBL(1)='EPAI'
  84. LESOBL(2)='RAYO'
  85. LESOBL(3)='PRES'
  86. LESFAC(1)='RACO'
  87. LESFAC(2)='VX'
  88. LESFAC(3)='VY'
  89. LESFAC(4)='VZ'
  90. MOCARA=NOMID
  91.  
  92. NCARA = NBROBL
  93. NCARF = NBRFAC
  94. NCARR = NCARA+NCARF
  95.  
  96. NBTYPE=1
  97. SEGINI NOTYPE
  98. TYPE(1)='REAL*8'
  99. MOTYR8 = NOTYPE
  100.  
  101. C DEBUT DE LA BOUCLE SUR LES DIFFERENTES ZONES
  102. ISCH = 0
  103.  
  104. DO 10 ISOUS = 1, NSOUS
  105.  
  106. ISOK = 0
  107. IVACAR = 0
  108. IVAFOR = 0
  109. C
  110. C TRAITEMENT DU MODELE
  111. C
  112. IMODEL = mmodel.KMODEL(ISOUS)
  113. SEGACT,IMODEL
  114. C
  115. C ON RECUPERE L INFORMATION GENERALE
  116. C
  117. IPMAIL = imodel.IMAMOD
  118. CONM = imodel.CONMOD
  119. MELE = imodel.NEFMOD
  120. C
  121. C ACTIVATION DU MELEME
  122. C
  123. MELEME = IPMAIL
  124. SEGACT,MELEME
  125. NBNN = meleme.NUM(/1)
  126. NBELEM = meleme.NUM(/2)
  127. C
  128. C INFORMATION SUR L'ELEMENT FINI
  129. C
  130. MFR = imodel.INFELE(13)
  131. IF (MFR.NE.13) GOTO 10
  132. C
  133. C ON A BIEN DES ELEMENTS TUYA
  134. C
  135. IPMINT = imodel.INFMOD(2+3)
  136.  
  137. IPPORE=0
  138. IF (MFR.EQ.33) IPPORE=NBNN
  139. C
  140. C CREATION DU TABLEAU INFOS
  141. C
  142. CALL IDENT(IPMAIL,CONM,IPCHE1,0,INFOS,IRTD)
  143. IF (IRTD.EQ.0) GOTO 101
  144. C
  145. C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES
  146. C
  147. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOCARA,MOTYR8,1,INFOS,3,IVACAR)
  148. IF (IERR.NE.0) GOTO 101
  149. C
  150. IF (ISUP.EQ.1) THEN
  151. MINTE = IPMINT
  152. SEGACT,MINTE
  153. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  154. IF (IERR.NE.0) THEN
  155. ISUP = 0
  156. GOTO 101
  157. ENDIF
  158. ENDIF
  159. C
  160. C RECHERCHE DES NOMS DE COMPOSANTES
  161. C
  162. nomid = imodel.LNOMID(2)
  163. if (nomid.eq.0) then
  164. write(ioimp,*) 'FPTUYA : MOFORC = 0 = lnomid(2) !'
  165. call erreur(5)
  166. endif
  167. MOFORC = nomid
  168. nfor = lesobl(/2)
  169. nfac = 0
  170. C
  171. C CREATION DU MCHAML DE LA SOUS ZONE
  172. C
  173. N2 = NFOR
  174. SEGINI,MCHAML
  175. C
  176. C TAILLE DES MELVAL A ALLOUER
  177. C
  178. N1PTEL = 2
  179. N1EL = NBELEM
  180. N2PTEL = 0
  181. N2EL = 0
  182.  
  183. NS = 1
  184. NCOSOU = NFOR
  185. SEGINI,MPTVAL
  186. IVAFOR = MPTVAL
  187. NOMID = MOFORC
  188. DO ICOMP = 1, NFOR
  189. mchaml.NOMCHE(ICOMP) = LESOBL(ICOMP)
  190. mchaml.TYPCHE(ICOMP) = 'REAL*8 '
  191. SEGINI MELVAL
  192. mchaml.IELVAL(ICOMP) = MELVAL
  193. mptval.IVAL(ICOMP) = MELVAL
  194. ENDDO
  195. C
  196. C CALCUL DES FORCES DE PRESSION
  197. C
  198. CALL FPELTU(0,IVACAR,IPMAIL,ISOUS,IVAFOR)
  199. IF (IERR.NE.0) GOTO 100
  200.  
  201. ISOK = 1
  202.  
  203. ISCH = ISCH + 1
  204.  
  205. IMACHE(ISCH) = IPMAIL
  206. CONCHE(ISCH) = CONM
  207.  
  208. INFCHE(ISCH,1) = 0
  209. INFCHE(ISCH,2) = 0
  210. INFCHE(ISCH,3) = NHRM
  211. INFCHE(ISCH,4) = MINTE
  212. INFCHE(ISCH,5) = 0
  213. INFCHE(ISCH,6) = 3
  214.  
  215. ICHAML(ISCH) = MCHAML
  216.  
  217. 100 continue
  218. CALL DTMVAL(IVAFOR,1)
  219. IF (ISUP.EQ.1) THEN
  220. CALL DTMVAL(IVACAR,3)
  221. ELSE
  222. CALL DTMVAL(IVACAR,1)
  223. ENDIF
  224. 101 continue
  225. C Sortie de la boucle en cas d'erreur
  226. IF (ISOK.EQ.0) THEN
  227. SEGSUP,MCHELM
  228. GOTO 900
  229. ENDIF
  230.  
  231. 10 CONTINUE
  232.  
  233. IF (ISCH.NE.NSOUS) THEN
  234. N1 = ISCH
  235. c* L1=5
  236. c* N3=6
  237. SEGADJ,MCHELM
  238. ENDIF
  239.  
  240. IRET = 1
  241. ICHAM = MCHELM
  242. CALL CHAMPO(ICHAM,0,IPTFP,IRET)
  243. CALL DTCHAM(ICHAM)
  244.  
  245. C FIN DU TRAITEMENT
  246. 900 CONTINUE
  247. NOMID = MOCARA
  248. SEGSUP,NOMID
  249. notype = MOTYR8
  250. SEGSUP,notype
  251.  
  252. RETURN
  253. END
  254.  
  255.  
  256.  

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