Télécharger fdebit.eso

Retour à la liste

Numérotation des lignes :

fdebit
  1. C FDEBIT SOURCE OF166741 24/10/21 21:15:13 12042
  2.  
  3. C______________________________________________________________________
  4. C
  5. C CALCULE LES FORCES DUES A UN DEBIT IMPOSE SUR UNE FRONTIERE DE
  6. C MASSIF ( INSPIRE DE FPMASS )
  7. C
  8. C ENTREES :
  9. C ---------
  10. C
  11. C IPCHE1 CHPOINT CONTENANT LES VALEURS DES DEBITS AUX NOEUDS
  12. C DE LA FACE D UN MASSIF
  13. C IPMODL OBJET MMODEL SUR LEQUEL S APPLIQUE LA CONDITION DE
  14. C DEBIT
  15. C MOT1 NOM A DONNER AU RESULTAT SI PAS ' '
  16. C
  17. C SORTIES :
  18. C ---------
  19. C
  20. C IPTFP CHPOINT DES FORCES NODALES EQUIVALENTES
  21. C IRETOK 1 OU 0 SUIVANT SUCCES OU NON
  22. C
  23. C Passage aux nouveaux CHAMELEM par JM CAMPENOB LE 06/91
  24. C
  25. C_______________________________________________________________________
  26.  
  27. SUBROUTINE FDEBIT(IPCHE1,IPMODL,IPTFP,MOT1,IRETOK)
  28.  
  29. IMPLICIT INTEGER(I-N)
  30. IMPLICIT REAL*8(A-H,O-Z)
  31.  
  32. -INC PPARAM
  33. -INC CCOPTIO
  34. -INC CCGEOME
  35. -INC CCHAMP
  36.  
  37. -INC SMCOORD
  38. -INC SMELEME
  39. -INC SMMODEL
  40. -INC SMCHAML
  41. -INC SMCHPOI
  42. -INC TMTRAV
  43.  
  44. logical ltelq
  45. SEGMENT INFO
  46. INTEGER INFELL(JG)
  47. ENDSEGMENT
  48. C
  49. C SEGMENTS DE TRAVAIL POUR CREER LE CHPOINT
  50. C
  51. SEGMENT ICPR(nbpts)
  52. C
  53. C CONTENU DU SEGMENT MTRAV
  54. C
  55. C NNNOE NOMBRE DE NOEUDS
  56. C IGEO LA LISTE DE CES NOEUDS
  57. C NNIN NOMBRE D'INCONNUES
  58. C INCO LA LISTE DE CES INCONNUES
  59. C NHAR LE NUMERO D'HARMONIQUE CORRESPONDANT
  60. C IBIN INDIQUE POUR UN NOEUD SI UNE INCONNUE EXISTE (=1 OU 0)
  61. C BB LA VALEUR CORRESPONDANTE
  62. C
  63. CHARACTER*(4) MOAPPU,MOSTRI,MOGEOM,MOFP,MOT1
  64. DATA MOAPPU/'APPU'/,MOSTRI/'STRI'/
  65. DATA MOGEOM/'GEOM'/,MOFP/'FP '/
  66. C
  67. IRETOK = 0
  68. IGEOM=0
  69. NHRM=NIFOUR
  70. C
  71. MCHPOI=IPCHE1
  72. C
  73. C ON CREE L OBJET GEOMETRIQUE CONTENANT TOUS LES PTS DU CHPOP
  74. C
  75. DO I=1,IPCHP(/1)
  76. MSOUPO=IPCHP(I)
  77. IF (I.GT.1) THEN
  78. ltelq=.false.
  79. CALL FUSE(IGEOM,IGEOC,IPT1,ltelq)
  80. IGEOM=IPT1
  81. ELSE
  82. IGEOM=IGEOC
  83. ENDIF
  84. ENDDO
  85. IF (IERR.NE.0) RETURN
  86. C
  87. C INITIALISATION DU TABLEAU ICPR
  88. C
  89. SEGINI,ICPR
  90. C
  91. C ACTIVATION DU MODEL
  92. C
  93. MMODEL=IPMODL
  94. NSOUS=KMODEL(/1)
  95.  
  96. IRRT=0
  97. DO 100 ISOUS=1,NSOUS
  98. C
  99. C ON RECUPERE L INFORMATION GENERALE
  100. C
  101. IMODEL=KMODEL(ISOUS)
  102. IPMAIL=IMAMOD
  103. C
  104. C TRAITEMENT DU MODEL
  105. C
  106. MELM=NEFMOD
  107. C
  108. C ON RECUPERE LES ELTS DE L ENVELOPPE DU MASSIF APPUYES
  109. C STRICTEMENT SUR LE CHPOINT DE DEBIT
  110. C
  111. CALL ECROBJ('MAILLAGE',IGEOM)
  112. CALL ECRCHA(MOSTRI)
  113. CALL ECRCHA(MOAPPU)
  114. CALL ECROBJ('MAILLAGE',IPMAIL)
  115. IF (IDIM.EQ.2) CALL PRCONT
  116. IF (IDIM.EQ.3) CALL ENVELO
  117. IF (IERR.NE.0) RETURN
  118. CALL EXTREL (IRR,0,IBNOR)
  119. IF (IRR.EQ.1) THEN
  120. IRRT=IRRT+IRR
  121. GOTO 100
  122. ENDIF
  123. CALL LIROBJ('MAILLAGE',IPT3,1,IRETOU)
  124. IF (IERR.NE.0) RETURN
  125. CALL ACTOBJ('MAILLAGE',IPT3,1)
  126. IF (IERR.NE.0) RETURN
  127. C
  128. C ON DETERMINE LA FORMULATION ASSOCIEE A L OBJET
  129. C GEOMETRIQUE ELEMENTAIRE DE SURFACE
  130. C
  131. NBSOU3 = IPT3.LISOUS(/1)
  132. IPT2 = IPT3
  133. C
  134. C BOUCLE SUR LES SOUS ZONES DE L ENVELOPPE
  135. C
  136. DO 110 IB=1,MAX(1,NBSOU3)
  137. IF (NBSOU3.NE.0) THEN
  138. IPT2=IPT3.LISOUS(IB)
  139. ENDIF
  140. NBNN=IPT2.NUM(/1)
  141. IPOGEO=IPT2
  142.  
  143. MELE=0
  144. C
  145. C MILIEUX POREUX :
  146. C ON RECUPERE L'ELEMENT QUADRATIQUE DE FACE
  147. C
  148. IF(MELM.EQ.79.OR.MELM.EQ.80.OR.MELM.EQ.108
  149. & .OR.MELM.EQ.173.OR.MELM.EQ.174.OR.MELM.EQ.178
  150. & .OR.MELM.EQ.179.OR.MELM.EQ.185.OR.MELM.EQ.188) THEN
  151. MELE=3
  152. IELI=2
  153. ELSE IF(MELM.EQ.81.OR.MELM.EQ.82.OR.MELM.EQ.83
  154. & .OR.MELM.EQ.109.OR.MELM.EQ.110.OR.MELM.EQ.175
  155. & .OR.MELM.EQ.176.OR.MELM.EQ.177.OR.MELM.EQ.180
  156. & .OR.MELM.EQ.181.OR.MELM.EQ.182.OR.MELM.EQ.186
  157. & .OR.MELM.EQ.187.OR.MELM.EQ.189.OR.MELM.EQ.190) THEN
  158. IF (NBNN.EQ.6) THEN
  159. MELE=33
  160. C IELI=3 BALD 96/02/23
  161. IELI=4
  162. ELSE
  163. MELE=34
  164. C IELI=4 BALD 96/02/23
  165. IELI=8
  166. ENDIF
  167. ENDIF
  168. C
  169. IF (MELE.EQ.0) THEN
  170. C
  171. C ERREUR : IMPOSSIBLE D UTILISER L OPERATEUR DEBIT POUR
  172. C LES ELEMENTS DE FORMULATION MELM
  173. C
  174. MOTERR(1:4)=NOMTP(MELM)
  175. MOTERR(5:8)=' '
  176. CALL ERREUR(193)
  177. RETURN
  178. ENDIF
  179. C
  180. C ON CREE L OBJET MODEL ASSOCIE A LA SURFACE ELEMENTAIRE
  181. C
  182. N1=1
  183. SEGINI MMODE1
  184. IPMOD1=MMODE1
  185. NFOR=FORMOD(/2)
  186. NMAT=MATMOD(/2)
  187. MN3 =INFMOD(/1)
  188. NPARMO=0
  189. nobmod=0
  190. SEGINI IMODE1
  191. MMODE1.KMODEL(1)=IMODE1
  192. IMODE1.IMAMOD=IPOGEO
  193. IMODE1.NEFMOD=MELE
  194. IMODE1.CONMOD=CONMOD
  195. DO I=1,NFOR
  196. IMODE1.FORMOD(I)=FORMOD(I)
  197. ENDDO
  198. DO I=1,NMAT
  199. IMODE1.MATMOD(I)=MATMOD(I)
  200. ENDDO
  201. DO I=1,MN3
  202. IMODE1.INFMOD(I)=INFMOD(I)
  203. ENDDO
  204. lzero=0
  205. call prquoi(imode1)
  206. call inomid(imode1,lzero,lzero,lzero,lzero)
  207. C
  208. C ON TRANSFORME LE CHPOINT DE PRESSION EN CHELEM ELEMENTAIRE
  209. C
  210. CALL CHAME1(0,IPMOD1,IPCHE1,' ',ICHELP,3)
  211. IF (IERR.NE.0) RETURN
  212. MCHEL1=ICHELP
  213. MCHAM1=MCHEL1.ICHAML(1)
  214. IPTVPR=MCHAM1.IELVAL(1)
  215. C
  216. C INFORMATION SUR L'ELEMENT FINI
  217. C
  218. * AM 11/05/2020 ON APPELLE ELQUOI
  219. ** if(infmod(/1).lt.5) then
  220. CALL ELQUOI(MELE,0,3,IPINF,IMODEL)
  221. IF (IERR.NE.0) RETURN
  222. INFO=IPINF
  223. MFR =INFELL(13)
  224. IELE =INFELL(14)
  225. IPTINT=INFELL(11)
  226. segsup info
  227. ** ELSE
  228. ** iptint=infmod(5)
  229. ** MFR =INFELE(13)
  230. ** IELE =INFELE(14)
  231. ** ENDIF
  232. c-dbg write(ioimp,*) 'fdebit=',MFR,INFELE(13),IELE,infele(14),
  233. c-dbg & iptint,infmod(5)
  234. C
  235. C INITIALISATION DU CHELEM ELEMENTAIRE DES FORCES NODALES
  236. C
  237. N1=1
  238. L1=8
  239. N3=6
  240. SEGINI MCHELM
  241. TITCHE='SCALAIRE'
  242. IFOCHE=IFOUR
  243. IPCHEL=MCHELM
  244. C
  245. IMACHE(1)=IPOGEO
  246. INFCHE(1,1)=0
  247. INFCHE(1,2)=0
  248. INFCHE(1,3)=NHRM
  249. INFCHE(1,4)=0
  250. INFCHE(1,5)=0
  251. INFCHE(1,6)=1
  252. C
  253. C RECHERCHE DE LA TAILLE DES MELVALS
  254. C
  255. MELEME=IPOGEO
  256. N1EL =NUM(/2)
  257. NBBB=NBNNE(IELI)
  258. N1PTEL=NBBB
  259. N2PTEL=0
  260. N2EL =0
  261. C
  262. C CREATION DU MCHAML DE LA SOUS ZONE
  263. C
  264. N2=1
  265. SEGINI MCHAML
  266. ICHAML(1)=MCHAML
  267. NOMCHE(1)='SCAL'
  268. TYPCHE(1)='REAL*8'
  269. SEGINI MELVAL
  270. IELVAL(1)=MELVAL
  271. IVAFOR=MELVAL
  272. C
  273. C CALCUL DES FORCES NODALES EQUIVALENTES
  274. C DEBRANCHEMENT SUIVANT LE TYPE DES ELEMENTS
  275. C
  276. C CAS DES ELEMENTS MASSIFS BIDIMENSIONNELS
  277. C FACE ASSOCIEE SEG3
  278. C CAS DES ELEMENTS MASSIFS TRIDIMENSIONNELS
  279. C FACES ASSOCIEES FAC6,FAC8
  280. C
  281. IF (MELE.EQ.3.OR.MELE.EQ.33.OR.MELE.EQ.34) THEN
  282. CALL FDE23D(IPTVPR,IPOGEO,IPTINT,IVAFOR,IELI)
  283. ELSE
  284. C
  285. C ERREUR L ELEMENT N EST PAS ENCORE IMPLEMENTE
  286. C
  287. MOTERR(1:4)=NOMTP(MELE)
  288. MOTERR(5:12)='FDEBIT'
  289. CALL ERREUR(86)
  290. SEGDES IPT3
  291. SEGDES MCHEL1
  292. SEGDES MCHAM1
  293. CALL DTMODL(IPMOD1)
  294. GOTO 9990
  295. ENDIF
  296. C
  297. C
  298. C ON TRANSFORME LE CHAM/ELEM EN CHAM/POIN
  299. C ET ON ADDITIONNE LES CHAM/POIN ELEMENTAIRES
  300. C
  301. MELEME = IPOGEO
  302. NBNN =NUM(/1)
  303. NBELEM=NUM(/2)
  304. C
  305. C REMPLISSAGE DU TABLEAU ICPR
  306. C
  307. DO IPT = 1, nbpts
  308. ICPR(IPT) = 0
  309. ENDDO
  310.  
  311. NNNOE=0
  312. DO IOP = 1,NBNN
  313. DO JOP = 1,NBELEM
  314. IPT= NUM(IOP,JOP)
  315. IF(ICPR(IPT).EQ.0) THEN
  316. NNNOE=NNNOE+1
  317. ICPR(IPT)=NNNOE
  318. ENDIF
  319. ENDDO
  320. ENDDO
  321. C
  322. NNIN=1
  323. SEGINI MTRAV
  324. IF(MOT1.EQ.' ') THEN
  325. INCO(1)=MOFP
  326. ELSE
  327. INCO(1)=MOT1
  328. ENDIF
  329. MELVAL=IVAFOR
  330. NBPTEL=VELCHE(/1)
  331. NEL =VELCHE(/2)
  332. C
  333. C BOUCLE SUR LES ELEMENTS ET LES NOEUDS
  334. C
  335. * AM 11/05/2020
  336. ** iele=itypel
  337. DO IBB=1,NBELEM
  338. DO IC=1,NBSOM(IELE)
  339. ICC=IBSOM(NSPOS(IELE)+IC-1)
  340. IPT=ICPR(NUM(ICC,IBB))
  341. BB(1,IPT)=VELCHE(IC,IBB)+BB(1,IPT)
  342. IBIN(1,IPT)=1
  343. IGEO(IPT)=NUM(ICC,IBB)
  344. ENDDO
  345. ENDDO
  346. C
  347. C CREATION DU CHPOINT
  348. C
  349. CALL CRECHP(MTRAV,IPCHPO)
  350. SEGSUP,MTRAV
  351. C
  352. SEGDES MELVAL,MCHAML,MCHELM
  353. CALL DTCHAM(IPCHEL)
  354. C
  355. IF (IPCHPO.EQ.0) GOTO 9990
  356. C
  357. C ADDITION DES CHPOINTS ELEMENTAIRES
  358. C
  359. IF ((ISOUS-IRRT).GT.1.OR.IB.GT.1) THEN
  360. CALL ADCHPO(IPCHPO,IPTFP,ICHP,1D0,1D0)
  361. CALL ECRCHA(MOGEOM)
  362. CALL DTCHPO(IPCHPO)
  363. CALL ECRCHA(MOGEOM)
  364. CALL DTCHPO(IPTFP)
  365. IF (ICHP.EQ.0) GOTO 9990
  366. IPTFP=ICHP
  367. ELSE
  368. IPTFP=IPCHPO
  369. ENDIF
  370. CALL DTMODL(IPMOD1)
  371. 110 CONTINUE
  372.  
  373. SEGDES IPT3
  374.  
  375. 100 CONTINUE
  376.  
  377. SEGSUP,ICPR
  378. IF(IRRT.EQ.KMODEL(/1)) THEN
  379. CALL ERREUR(395)
  380. RETURN
  381. ENDIF
  382.  
  383. C FIN NORMALE : Travail accompli
  384. IRETOK = 1
  385.  
  386. RETURN
  387. C
  388. 9990 CONTINUE
  389. C
  390. C ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR
  391. C
  392. MELVAL=IVAFOR
  393. SEGSUP,MELVAL
  394. SEGSUP,MCHAML
  395. SEGSUP,MCHELM
  396. SEGSUP,ICPR
  397.  
  398. RETURN
  399. END
  400.  
  401.  
  402.  
  403.  

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