Télécharger fptuya.eso

Retour à la liste

Numérotation des lignes :

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

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