Télécharger bsigm2.eso

Retour à la liste

Numérotation des lignes :

bsigm2
  1. C BSIGM2 SOURCE OF166741 25/02/21 21:15:13 12166
  2. SUBROUTINE BSIGM2(IPMAIL,LRE,NSTRS,IVASTR,LW,NBPGAU,IVACAR,CMATE,
  3. & NBPTEL,MELE,MFR,IPMINT,IPMIN1,IVAMAT,NMATT,NBGMAT,NELMAT,IMAT,
  4. & NPINT,NFORC,IVAFOR,ADPG,BDPG,CDPG,IIPDPG)
  5. *----------------------------------------------------------------------
  6. * _______________________________ *
  7. * | | *
  8. * | CALCUL DES FORCES AUX NOEUDS| *
  9. * |______________________________| *
  10. * *
  11. * coq3,dkt,coq4,coq8,coq2 ,dst, jot3, joi4, joi2, joi3 *
  12. * *
  13. *---------------------------------------------------------------------*
  14. * *
  15. * ENTREES : *
  16. * ________ *
  17. * *
  18. * IPMAIL Pointeur sur un segment MELEME ACTIF E/S *
  19. * LRE Nombre de ddl dans la matrice de rigidite *
  20. * NSTRS Nombre de composante de contraintes/deformations *
  21. * IVASTR pointeur sur un segment MPTVAL contenant les *
  22. * les melvals de contraints *
  23. * LW Dimension du tableau de travail de l'element *
  24. * NBPGAU Nombre de points d'integration pour les contraintes *
  25. * IVACAR Pointeur sur les chamelems de caracteristiques *
  26. * NBPTEL Nombre de points par element *
  27. * MELE Numero de l'element fini *
  28. * MFR Numero de la formulation
  29. * IPMINT Pointeur sur un segment MINTE ACTIF E/S *
  30. * IPMIN1 Pointeur sur un segment MINTE (aux noeuds) *
  31. * NPINT Nombre de points d'integration dans l'epaisseur
  32. * dans le cas des elements de coque integres
  33. * *
  34. * SORTIES : *
  35. * ________ *
  36. * *
  37. * IVAFOR pointeur sur un segment MPTVAL contenant les *
  38. * les melvals de forces *
  39. * *
  40. * ICHPO1 pointeur sur le petit chpoint cree à l'usage de *
  41. * la deformation plane generalisee *
  42. *---------------------------------------------------------------------*
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45.  
  46. -INC PPARAM
  47. -INC CCOPTIO
  48. -INC CCHAMP
  49.  
  50. -INC SMCHAML
  51. -INC SMCHPOI
  52. -INC SMELEME
  53. -INC SMCOORD
  54. -INC SMMODEL
  55. -INC SMINTE
  56. -INC SMLREEL
  57.  
  58. -INC TMPTVAL
  59.  
  60. SEGMENT WRK1
  61. REAL*8 XFORC(LRE), XSTRS(NSTRS), XE(3,NBBB)
  62. REAL*8 DDHOOK(NSTRS,NSTRS),DDHOMU(NSTRS,NSTRS)
  63. ENDSEGMENT
  64. *
  65. SEGMENT WRK2
  66. REAL*8 SHPWRK(6,NBNO), BGENE(NSTRS,LRE)
  67. ENDSEGMENT
  68. *
  69. SEGMENT WRK3
  70. REAL*8 WORK(LW)
  71. ENDSEGMENT
  72. *
  73. SEGMENT WRK4
  74. REAL*8 BPSS(3,3), XEL(3,NBBB), XFOLO(LRE)
  75. ENDSEGMENT
  76. *
  77. SEGMENT WRK5
  78. REAL*8 BGENE1(3,LRE)
  79. ENDSEGMENT
  80. *
  81. SEGMENT,MVELCH
  82. REAL*8 VALMAT(NV1)
  83. ENDSEGMENT
  84. CHARACTER*8 CMATE
  85.  
  86. * pour l'appel a rcdst
  87. dimension rel(36,36)
  88. *
  89. MELEME=IPMAIL
  90. C* SEGACT MELEME
  91. NBNN=NUM(/1)
  92. NBELEM=NUM(/2)
  93. *
  94. * INITIALISATION DES COORDONNES DU POINT AUTOUR DUQUEL SE FAIT
  95. * LE MOUVEMENT EN DEFORMATION PLANE GENERALISEE
  96. * ET INITIALISATION DES FORCES AU NOEUD SUPPORT DE LA DEFO
  97. * PLANE GENERALISEE
  98. CCC IF (IFOUR.EQ.-3.AND.MFR.NE.35)THEN
  99. IF (IIPDPG.GT.0) THEN
  100. c* SEGACT MCOORD
  101. IREF = (IIPDPG-1)*(IDIM+1)
  102. XDPGE=XCOOR(IREF+1)
  103. YDPGE=XCOOR(IREF+2)
  104. ELSE
  105. XDPGE=0.D0
  106. YDPGE=0.D0
  107. ENDIF
  108. ADPG=0.D0
  109. BDPG=0.D0
  110. CDPG=0.D0
  111. *
  112. NHRM=NIFOUR
  113. *
  114. MINTE=IPMINT
  115. IF(MELE.EQ.93)THEN
  116. NV1=NMATT
  117. SEGINI MVELCH
  118. ENDIF
  119. C_______________________________________________________________________
  120. C
  121. C NUMERO DES ETIQUETTES :
  122. C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT
  123. C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR :
  124. C 5 CONTINUE
  125. C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ...
  126. C 44 CONTINUE
  127. C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ...
  128. C_______________________________________________________________________
  129. C
  130. GOTO(99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
  131. 1 99,99,99,99,99,99,27,28,99,99,99,99,99,99,99,99,99,99,99,99,
  132. 2 41,99,99,44,99,99,99,99,49,99,99,99,99,99,99,41,99,99,99,99,
  133. 3 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
  134. 4 99,99,99,99,85,86,87,88,99,99,99,99,93,99,99,99,99),MELE
  135.  
  136. GOTO(168,169,170,171,172),MELE-167
  137. IF(MELE.EQ.258) GOTO 258
  138. GOTO 99
  139. C_______________________________________________________________________
  140. C
  141. C ELEMENT COQ3
  142. C_______________________________________________________________________
  143. C
  144. 27 CONTINUE
  145. NBBB=NBNN
  146. LW=151
  147. SEGINI WRK1,WRK3
  148. C
  149. DO 3027 IB=1,NBELEM
  150. C
  151. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  152. C
  153. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  154. C
  155. C MISE A ZERO DES FORCES INTERNES
  156. C
  157. CALL ZERO(XFORC,1,LRE)
  158. C
  159. C ON CHERCHE LES CONTRAINTES
  160. C
  161. MPTVAL=IVASTR
  162. DO 7027 ICOMP=1,NSTRS
  163. MELVAL=IVAL(ICOMP)
  164. IBMN=MIN(IB ,VELCHE(/2))
  165. XSTRS(ICOMP)=VELCHE(1,IBMN)
  166. 7027 CONTINUE
  167. C
  168. C ON CALCULE B*EFFORTS
  169. C
  170. CALL BSIGCO(XE,XSTRS,XFORC,WORK,WORK,WORK(82),WORK(88),
  171. * WORK(92),WORK(119),WORK(128),WORK(134),WORK(143),WORK(143),
  172. * WORK(146),WORK(149))
  173. C
  174. C RANGEMENT DANS MELVAL
  175. C
  176. IE=0
  177. MPTVAL=IVAFOR
  178. DO 9027 IGAU=1,NBNN
  179. DO 9027 ICOMP=1,6
  180. IE=IE+1
  181. MELVAL=IVAL(ICOMP)
  182. IBMN=MIN(IB ,VELCHE(/2))
  183. VELCHE(IGAU,IBMN)=XFORC(IE)
  184. 9027 CONTINUE
  185. C
  186. 3027 CONTINUE
  187. SEGSUP WRK1,WRK3
  188. GOTO 510
  189. C_______________________________________________________________________
  190. C
  191. C ELEMENT DKT
  192. C_______________________________________________________________________
  193. C
  194. 28 CONTINUE
  195. NBNO=NBNN
  196. NBBB=NBNN
  197. IF(NPINT.NE.0)THEN
  198. SEGINI WRK1,WRK3,WRK4,WRK5
  199. NSTRS=6
  200. SEGINI WRK2
  201. NSTRS=4
  202. ELSE
  203. SEGINI WRK1,WRK2,WRK3,WRK4
  204. ENDIF
  205. C
  206. DO 3028 IB=1,NBELEM
  207. C
  208. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  209. C
  210. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  211. C
  212. C MISE A ZERO DES FORCES INTERNES
  213. C
  214. CALL ZERO(XFORC,1,LRE)
  215. C
  216. CALL VPAST(XE,BPSS)
  217. C BPSS STOCKE LA MATRICOMPE DE PASSAGE
  218. CALL VCORLC (XE,XEL,BPSS)
  219. CALL TRPOSE(BPSS)
  220. C
  221. C ON CHERCHE LES EPAISEURS ET ON LES MOYENNE,
  222. C LES EXCENTREMENTS ET ON LES MOYENNE.
  223. C
  224. MPTVAL=IVACAR
  225. C
  226. EPAIST=0.D0
  227. MELVAL=IVAL(1)
  228. IF (MELVAL.NE.0) THEN
  229. DO IGAU=1,NBPGAU
  230. IGMN=MIN(IGAU,VELCHE(/1))
  231. IBMN=MIN(IB,VELCHE(/2))
  232. EPAIST=EPAIST+VELCHE(IGMN,IBMN)
  233. ENDDO
  234. EPAIST=EPAIST/NBPGAU
  235. ENDIF
  236. *
  237. EXCEN=0.D0
  238. MELVAL=IVAL(2)
  239. IF (MELVAL.NE.0) THEN
  240. DO IGAU=1,NBPGAU
  241. IGMN=MIN(IGAU,VELCHE(/1))
  242. IBMN=MIN(IB,VELCHE(/2))
  243. EXCEN=EXCEN+VELCHE(IGMN,IBMN)
  244. ENDDO
  245. EXCEN=EXCEN/NBPGAU
  246. ENDIF
  247. C
  248. IF(NPINT.EQ.0)THEN
  249. C
  250. C COQUE GLOBAL
  251. C
  252. C BOUCLE SUR LES POINTS DE GAUSS
  253. C
  254. DO 6028 IGAU=1,NBPGAU
  255. *
  256. CALL BMAT28(IGAU,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  257. & MELE,MFR,NBNO,LRE,IFOUR,NSTRS,0,1.D0,XEL,
  258. & SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE)
  259. DJAC=DJAC*POIGAU(IGAU)
  260. *
  261. * ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT
  262. *
  263. IF (EXCEN.NE.0.) THEN
  264. DO 1528 IJL=1,3
  265. DO 1528 IJC=1,LRE
  266. BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC)
  267. 1528 CONTINUE
  268. ENDIF
  269. C
  270. C ON CHERCHE LES CONTRAINTES
  271. C
  272. MPTVAL=IVASTR
  273. DO 7028 ICOMP=1,NSTRS
  274. MELVAL=IVAL(ICOMP)
  275. IGMN=MIN(IGAU,VELCHE(/1))
  276. IBMN=MIN(IB ,VELCHE(/2))
  277. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  278. 7028 CONTINUE
  279. C
  280. C ON CALCULE B*EFFORTS
  281. C
  282. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  283. 6028 CONTINUE
  284. C
  285. ELSE
  286. C
  287. C COQUE INTEGREE
  288. C
  289. NBPGA1=NBPGAU/NPINT
  290. C
  291. C BOUCLE SUR LES POINTS DE GAUSS DE LA SURFACE
  292. C
  293. DO 6001 IGAU=1,NBPGA1
  294. *
  295. CALL BMAT28(IGAU,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  296. & MELE,MFR,NBNO,LRE,IFOUR,6,0,1.D0,XEL,SHPTOT,
  297. & SHPWRK,BGENE,DJAC,XDPGE,YDPGE)
  298. *
  299. * ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT
  300. *
  301. IF (EXCEN.NE.0.) THEN
  302. DO 1501 IJL=1,3
  303. DO 1501 IJC=1,LRE
  304. BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC)
  305. 1501 CONTINUE
  306. ENDIF
  307. C
  308. C BOUCLE SUR LES NAPPES
  309. C
  310. DO 6002 INAP=1,NPINT
  311. IGAU1=(INAP-1)*NBPGA1+IGAU
  312. C
  313. C ON CHERCHE LES CONTRAINTES
  314. C
  315. MPTVAL=IVASTR
  316. DO 7001 ICOMP=1,NSTRS
  317. MELVAL=IVAL(ICOMP)
  318. IGMN=MIN(IGAU1,VELCHE(/1))
  319. IBMN=MIN(IB ,VELCHE(/2))
  320. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  321. 7001 CONTINUE
  322. XSTRS(3)=XSTRS(4)
  323. C
  324. C CALCUL DE LA MATRICE B CORRESPONDANT AUX CONTRAINTES 3D
  325. C
  326. ZZZ=DZEGAU(IGAU1)*(EPAIST/2.D0)
  327. DO 1502 IJL=1,3
  328. DO 1502 IJC=1,LRE
  329. BGENE1(IJL,IJC)=BGENE(IJL,IJC)+ZZZ*BGENE(IJL+3,IJC)
  330. 1502 CONTINUE
  331. DJAC1=DJAC*POIGAU(IGAU1)*(EPAIST/2.D0)
  332. C
  333. C ON CALCULE B*EFFORTS
  334. C
  335. CALL BSIG(BGENE1,XSTRS,3,LRE,DJAC1,XFORC)
  336. 6002 CONTINUE
  337. 6001 CONTINUE
  338. ENDIF
  339. C
  340. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  341. C
  342. CALL MATVEC(XFORC,XFOLO,BPSS,6)
  343. IE=0
  344. MPTVAL=IVAFOR
  345. DO 9028 IGAU=1,NBNN
  346. DO 9028 ICOMP=1,6
  347. IE=IE+1
  348. MELVAL=IVAL(ICOMP)
  349. IBMN=MIN(IB ,VELCHE(/2))
  350. VELCHE(IGAU,IBMN)=XFOLO(IE)
  351. 9028 CONTINUE
  352. 3028 CONTINUE
  353. SEGSUP WRK1,WRK2,WRK3,WRK4
  354. IF(NPINT.NE.0)SEGSUP WRK5
  355. GOTO 510
  356.  
  357. C_______________________________________________________________________
  358. C
  359. C ELEMENTS COQ6 ET COQ8
  360. C_______________________________________________________________________
  361. C
  362. 41 CONTINUE
  363. NBBB=NBNN
  364. SEGINI WRK1,WRK3
  365. MINTE1=IPMIN1
  366. SEGACT MINTE1
  367. NBPGA1=MINTE1.SHPTOT(/3)
  368. NBN1 =MINTE1.SHPTOT(/2)
  369. C
  370. C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS
  371. C
  372. DO 3041 IB=1,NBELEM
  373. C
  374. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  375. C
  376. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  377. C
  378. C MISE A ZERO DES FORCES INTERNES
  379. C
  380. CALL ZERO(XFORC,1,LRE)
  381.  
  382. C ON CHERCHE LES EPAISSEURS ET LES EXCENTREMENTS,
  383. C ON LES MOYENNE SUR L'ELEMENT.
  384. C
  385. MPTVAL=IVACAR
  386. EPAIST=0.D0
  387. MELVAL=IVAL(1)
  388. IF (MELVAL.NE.0) THEN
  389. DO IGAU=1,NBPTEL
  390. IGMN=MIN(IGAU,VELCHE(/1))
  391. IBMN=MIN(IB ,VELCHE(/2))
  392. EPAIST=EPAIST+VELCHE(IGMN,IBMN)
  393. ENDDO
  394. EPAIST=EPAIST/NBPTEL
  395. ENDIF
  396. EXCEN=0.D0
  397. MELVAL=IVAL(2)
  398. IF (MELVAL.NE.0) THEN
  399. DO IGAU=1,NBPTEL
  400. IGMN=MIN(IGAU,VELCHE(/1))
  401. IBMN=MIN(IB ,VELCHE(/2))
  402. EXCEN=EXCEN+VELCHE(IGMN,IBMN)
  403. ENDDO
  404. EXCEN=EXCEN/NBPTEL
  405. ENDIF
  406. CALL ZERO(XFORC,1,LRE)
  407. C
  408. C ON CHERCHE LES CONTRAINTES
  409. C
  410. IE=1
  411. MPTVAL=IVASTR
  412. DO 7041 IGAU=1,NBPGAU
  413. DO 7041 ICOMP=1,NSTRS
  414. MELVAL=IVAL(ICOMP)
  415. IGMN=MIN(IGAU,VELCHE(/1))
  416. IBMN=MIN(IB ,VELCHE(/2))
  417. WORK(IE)=VELCHE(IGMN,IBMN)
  418. IE=IE+1
  419. 7041 CONTINUE
  420. C
  421. C ON CALCULE B*SIGMA
  422. C
  423. CALL CQ8BSE(XE,NBNN,NBPGAU,LRE,EPAIST,EXCEN,DZEGAU,
  424. * POIGAU,SHPTOT,MINTE1.SHPTOT,WORK(1),XFORC,IRRT)
  425.  
  426. IF(IRRT.EQ.0) THEN
  427. INTERR(1)=IB
  428. CALL ERREUR(241)
  429. GOTO 9941
  430. ELSE IF(IRRT.EQ.-1) THEN
  431. INTERR(1)=IB
  432. CALL ERREUR(240)
  433. GOTO 9941
  434. ENDIF
  435. C
  436. C RANGEMENT DANS MELVAL
  437. C
  438. IE=0
  439. MPTVAL=IVAFOR
  440. DO 9041 IGAU=1,NBNN
  441. DO 9041 ICOMP=1,6
  442. IE=IE+1
  443. MELVAL=IVAL(ICOMP)
  444. IBMN=MIN(IB ,VELCHE(/2))
  445. VELCHE(IGAU,IBMN)=XFORC(IE)
  446. 9041 CONTINUE
  447. 3041 CONTINUE
  448.  
  449. 9941 CONTINUE
  450. SEGSUP WRK1,WRK3
  451. SEGDES MINTE1
  452. GOTO 510
  453.  
  454. C_______________________________________________________________________
  455. C
  456. C ELEMENT COQ2
  457. C_______________________________________________________________________
  458. C
  459. 44 CONTINUE
  460. DIM3=1.D0
  461. NBNO=NBNN
  462. NBBB=NBNN
  463. SEGINI WRK1,WRK2
  464. C
  465. DO 3044 IB=1,NBELEM
  466. C
  467. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  468. C
  469. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  470. C
  471. C MISE A ZERO DES FORCES INTERNES
  472. C
  473. CALL ZERO(XFORC,1,LRE)
  474. C
  475. C BOUCLE SUR LES POINTS DE GAUSS
  476. C
  477. DO 6044 IGAU=1,NBPGAU
  478. MPTVAL=IVACAR
  479. MELVAL=IVAL(2)
  480. IF (MELVAL.NE.0) THEN
  481. IBMN=MIN(IB ,VELCHE(/2))
  482. EXCEN=VELCHE(1,IBMN)
  483. ELSE
  484. EXCEN=0.D0
  485. ENDIF
  486. IF(IFOUR.EQ.-2) THEN
  487. MELVAL=IVAL(3)
  488. IF (MELVAL.NE.0) THEN
  489. IGMN=MIN(IGAU ,VELCHE(/1))
  490. IBMN=MIN(IB ,VELCHE(/2))
  491. DIM3=VELCHE(IGMN,IBMN)
  492. ELSE
  493. DIM3=1.D0
  494. ENDIF
  495. ENDIF
  496. *
  497. CALL BCOQ2(BGENE,NSTRS,DJAC,IGAU,IFOUR,XE,NHRM,QSIGAU,POIGAU,
  498. . EXCEN,DIM3,IRRT,XDPGE,YDPGE)
  499. IF (IRRT.EQ.1) THEN
  500. INTERR(1)=IB
  501. CALL ERREUR(255)
  502. GOTO 9944
  503. ELSE IF(IRRT.EQ.2) THEN
  504. INTERR(1)=IB
  505. CALL ERREUR(256)
  506. GOTO 9944
  507. ENDIF
  508. C
  509. C ON CHERCHE LES CONTRAINTES -
  510. C
  511. MPTVAL=IVASTR
  512. DO 7044 ICOMP=1,NSTRS
  513. MELVAL=IVAL(ICOMP)
  514. IGMN=MIN(IGAU,VELCHE(/1))
  515. IBMN=MIN(IB ,VELCHE(/2))
  516. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  517. 7044 CONTINUE
  518. C
  519. C ON CALCULE B*EFFORTS
  520. C
  521. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  522. 6044 CONTINUE
  523. C
  524. C EXTRACTION DES FORCES AU NOEUD SUPPORT DE LA DEF PLAN GENE
  525. C ON CALCULE LES RESULTANTES DES FORCES SUR CHAQUE ELEMENT
  526. C PPJ IF (IFOUR.EQ.-3) THEN
  527. ccc IF (IFOUR.EQ.-3.AND.MFR.NE.35) THEN
  528. IF (IIPDPG.GT.0) THEN
  529. ADPG=ADPG+XFORC(NBNN*3+1)
  530. BDPG=BDPG+XFORC(NBNN*3+2)
  531. CDPG=CDPG+XFORC(NBNN*3+3)
  532. ENDIF
  533. C
  534. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  535. C
  536. MPTVAL=IVAFOR
  537. IF(IFOUR.GT.0) THEN
  538. DO 9044 IGAU=1,2
  539. IE=(IGAU-1)*4
  540. C
  541. MELVAL=IVAL(1)
  542. IGMN=MIN(IGAU,VELCHE(/1))
  543. IBMN=MIN(IB ,VELCHE(/2))
  544. VELCHE(IGMN,IBMN)= XFORC(IE+1)
  545. C
  546. MELVAL=IVAL(2)
  547. IGMN=MIN(IGAU,VELCHE(/1))
  548. IBMN=MIN(IB ,VELCHE(/2))
  549. VELCHE(IGMN,IBMN)= XFORC(IE+2)
  550. C
  551. MELVAL=IVAL(3)
  552. IGMN=MIN(IGAU,VELCHE(/1))
  553. IBMN=MIN(IB ,VELCHE(/2))
  554. VELCHE(IGMN,IBMN)= XFORC(IE+3)
  555. C
  556. MELVAL=IVAL(4)
  557. IGMN=MIN(IGAU,VELCHE(/1))
  558. IBMN=MIN(IB ,VELCHE(/2))
  559. VELCHE(IGMN,IBMN)= XFORC(IE+4)
  560. 9044 CONTINUE
  561. ELSE IF(IFOUR.LE.0) THEN
  562. DO 9144 IGAU=1,2
  563. IE=(IGAU-1)*3
  564. C
  565. MELVAL=IVAL(1)
  566. IGMN=MIN(IGAU,VELCHE(/1))
  567. IBMN=MIN(IB ,VELCHE(/2))
  568. VELCHE(IGMN,IBMN)= XFORC(IE+1)
  569. C
  570. MELVAL=IVAL(2)
  571. IGMN=MIN(IGAU,VELCHE(/1))
  572. IBMN=MIN(IB ,VELCHE(/2))
  573. VELCHE(IGMN,IBMN)= XFORC(IE+2)
  574. C
  575. MELVAL=IVAL(3)
  576. IGMN=MIN(IGAU,VELCHE(/1))
  577. IBMN=MIN(IB ,VELCHE(/2))
  578. VELCHE(IGMN,IBMN)= XFORC(IE+3)
  579. 9144 CONTINUE
  580. ENDIF
  581. 3044 CONTINUE
  582. C
  583. 9944 CONTINUE
  584. SEGSUP WRK1,WRK2
  585. GOTO 510
  586.  
  587. C_______________________________________________________________________
  588. C
  589. C ELEMENT COQ4
  590. C_______________________________________________________________________
  591. C
  592. 49 CONTINUE
  593. NBNO=NBNN
  594. NBBB=NBNN
  595. SEGINI WRK1,WRK2,WRK4
  596. C
  597. DO 3049 IB=1,NBELEM
  598. C
  599. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  600. C
  601. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  602. C
  603. C MISE A ZERO DES FORCES INTERNES
  604. C
  605. CALL ZERO(XFORC,1,LRE)
  606. C
  607. C RIFERIMENTO LOCALE
  608. C
  609. CALL CQ4LOC(XE,XEL,BPSS,IERT,1)
  610. IF (IERT .EQ. 3) THEN
  611. NOPLAN = 1
  612. ELSE
  613. NOPLAN = 0
  614. END IF
  615. CALL TRPOSE(BPSS)
  616. MPTVAL=IVACAR
  617. MELVAL=IVAL(2)
  618. IF (MELVAL.NE.0) THEN
  619. IBMN=MIN(IB ,VELCHE(/2))
  620. EXCEN=VELCHE(1,IBMN)
  621. ELSE
  622. EXCEN=0.D0
  623. ENDIF
  624. C
  625. C BOUCLE SUR LES POINTS DE GAUSS
  626. C
  627. DO 6049 IGAU=1,NBPGAU
  628. if(cmate.eq.'ISOTROPE') then
  629. CALL BCOQ4(IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,EXCEN,NOPLAN,IERT,0)
  630. else
  631. CALL BCOQ4O(IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,EXCEN,NOPLAN,IERT,0)
  632. endif
  633. IF (IERT.NE.0) THEN
  634. INTERR(1)=IB
  635. CALL ERREUR (321)
  636. GOTO 9949
  637. ENDIF
  638. C
  639. C ON CHERCHE LES CONTRAINTES -
  640. C
  641. MPTVAL=IVASTR
  642. DO 7049 ICOMP=1,NSTRS
  643. MELVAL=IVAL(ICOMP)
  644. IGMN=MIN(IGAU,VELCHE(/1))
  645. IBMN=MIN(IB ,VELCHE(/2))
  646. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  647. 7049 CONTINUE
  648. C
  649. C ON CALCULE B*EFFORTS
  650. C
  651. DJAC=DJAC*POIGAU(IGAU)
  652. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  653. 6049 CONTINUE
  654. C
  655. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  656. C
  657. CALL MATVEC(XFORC,XFOLO,BPSS,8)
  658.  
  659. MPTVAL=IVAFOR
  660. IE=0
  661. DO 9049 NODE=1,4
  662. DO 9049 ICOMP=1,6
  663. IE=IE+1
  664. MELVAL=IVAL(ICOMP)
  665. IBMN=MIN(IB ,VELCHE(/2))
  666. VELCHE(NODE,IBMN)=XFOLO(IE)
  667. 9049 CONTINUE
  668. 3049 CONTINUE
  669.  
  670. 9949 CONTINUE
  671. SEGSUP WRK1,WRK2,WRK4
  672. GOTO 510
  673. C_______________________________________________________________________
  674. C
  675. C ELEMENT JOINT JOI2
  676. C_______________________________________________________________________
  677. C
  678. 85 CONTINUE
  679. NBNO=NBNN
  680. NBBB=NBNN
  681. SEGINI WRK1,WRK2,WRK4
  682. C
  683. DO 3085 IB=1,NBELEM
  684. C
  685. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  686. C
  687. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  688. C
  689. C MISE A ZERO DES FORCES INTERNES
  690. C
  691. CALL ZERO(XFORC,1,LRE)
  692. C
  693. C REPERE LOCAL
  694. C
  695. CALL JO2LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  696. C
  697. C BOUCLE SUR LES POINTS DE GAUSS
  698. C
  699. DO 6085 IGAU=1,NBPGAU
  700. CALL BJO2(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK,
  701. . BGENE,DJAC,IERT)
  702. IF (IERT.NE.0) THEN
  703. INTERR(1)=IB
  704. CALL ERREUR (162)
  705. GOTO 9985
  706. ENDIF
  707. C
  708. C EN AXISYMETRIE, MULTIPLICATION PAR LE RAYON DE COURBURE
  709. C (LE RAYON DE COURBURE DOIT ETRE CALCULE AVEC LES COORDONNEES
  710. C GLOCALES CAR ON FAIT UNE INTEGRATION SUR LA CIRCONFERENCE DE LA
  711. C STRUCTURE CYLINDRIQUE DANS LE REPERE GLOBAL).
  712. C
  713. IF (IFOUR.EQ.0) THEN
  714. NUMSUP=NBNO/2
  715. RAYON=0.D0
  716. DO 6285 IRAY=1,NUMSUP
  717. RAYON=RAYON+SHPTOT(1,IRAY,IGAU)*XE(1,IRAY)
  718. 6285 CONTINUE
  719. DJAC=DJAC*RAYON
  720. ENDIF
  721. C
  722. C ON CHERCHE LES CONTRAINTES -
  723. C
  724. MPTVAL=IVASTR
  725. DO 7085 ICOMP=1,NSTRS
  726. MELVAL=IVAL(ICOMP)
  727. IGMN=MIN(IGAU,VELCHE(/1))
  728. IBMN=MIN(IB ,VELCHE(/2))
  729. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  730. 7085 CONTINUE
  731. C
  732. C ON CALCULE B*EFFORTS
  733. C
  734. DJAC=DJAC*POIGAU(IGAU)
  735. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  736. 6085 CONTINUE
  737. C
  738. C RANGEMENT DANS MELVAL
  739. C
  740. IE=0
  741. MPTVAL=IVAFOR
  742. C
  743. C NODE=4= NOMBRE DE NOEUDS
  744. C ICOMP=2= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  745. C
  746. DO 9085 NODE=1,4
  747. DO 9085 ICOMP=1,2
  748. IE=IE+1
  749. MELVAL=IVAL(ICOMP)
  750. IBMN=MIN(IB ,VELCHE(/2))
  751. VELCHE(NODE,IBMN)=XFORC(IE)
  752. 9085 CONTINUE
  753. 3085 CONTINUE
  754.  
  755. 9985 CONTINUE
  756. SEGSUP WRK1,WRK2,WRK4
  757. GOTO 510
  758.  
  759. C_______________________________________________________________________
  760. C
  761. C ELEMENT JOINT JGI2
  762. C_______________________________________________________________________
  763. C
  764. 170 CONTINUE
  765. NBNO=NBNN
  766. NBBB=NBNN
  767. SEGINI WRK1,WRK2,WRK4
  768. C
  769. DO IB=1,NBELEM
  770. C
  771. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  772. C
  773. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  774. C
  775. C MISE A ZERO DES FORCES INTERNES
  776. C
  777. CALL ZERO(XFORC,1,LRE)
  778. C
  779. C REPERE LOCAL
  780. C
  781. CALL JO2LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  782. C
  783. C BOUCLE SUR LES POINTS DE GAUSS
  784. C
  785. DO IGAU=1,NBPGAU
  786. C
  787. C ON CHERCHE L EPAISSEUR DU JOINT
  788. C
  789. EPAIST=0.D0
  790. MPTVAL=IVACAR
  791. MELVAL=IVAL(1)
  792. IF (MELVAL.NE.0) THEN
  793. IGMN=MIN(IGAU,VELCHE(/1))
  794. IBMN=MIN(IB,VELCHE(/2))
  795. EPAIST=VELCHE(IGMN,IBMN)
  796. ENDIF
  797. C
  798. CcPPj CALL BJO2GN(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK,
  799. CcPPj. EPAIST,BGENE,DJAC,XDPGE,YDPGE,IERT)
  800. CALL BJO2GN(IGAU,MFR,IFOUR,NIFOUR,XE,XEL,BPSS,SHPTOT,SHPWRK,
  801. . EPAIST,BGENE,DJAC,XDPGE,YDPGE,IERT)
  802. IF (IERT.NE.0) THEN
  803. INTERR(1)=IB
  804. CALL ERREUR (612)
  805. GOTO 99170
  806. ENDIF
  807. C????????????????
  808. C EN AXISYMETRIE, MULTIPLICATION PAR LE RAYON DE COURBURE
  809. C (LE RAYON DE COURBURE DOIT ETRE CALCULE AVEC LES COORDONNEES
  810. C GLOCALES CAR ON FAIT UNE INTEGRATION SUR LA CIRCONFERENCE DE LA
  811. C STRUCTURE CYLINDRIQUE DANS LE REPERE GLOBAL).
  812. C????????????????
  813. IF (IFOUR.EQ.0) THEN
  814. NUMSUP=NBNO/2
  815. RAYON=0.D0
  816. DO IRAY=1,NUMSUP
  817. RAYON=RAYON+SHPTOT(1,IRAY,IGAU)*XE(1,IRAY)
  818. ENDDO
  819. DJAC=DJAC*RAYON
  820. ENDIF
  821. C
  822. C ON CHERCHE LES CONTRAINTES -
  823. C
  824. MPTVAL=IVASTR
  825. DO ICOMP=1,NSTRS
  826. MELVAL=IVAL(ICOMP)
  827. IGMN=MIN(IGAU,VELCHE(/1))
  828. IBMN=MIN(IB ,VELCHE(/2))
  829. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  830. ENDDO
  831. C
  832. C ON CALCULE B*EFFORTS
  833. C
  834. DJAC=DJAC*POIGAU(IGAU)
  835. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  836. ENDDO
  837. C
  838. C EXTRACTION DES FORCES AU NOEUD SUPPORT DE LA DEF PLAN GENE
  839. C ON CALCULE LES RESULTANTES DES FORCES SUR CHAQUE ELEMENT
  840. C
  841. NFOFO=NFORC
  842. IF (IFOUR.EQ.-3) THEN
  843. NFOFO=NFORC-3
  844. ADPG=ADPG+XFORC(NBNN*NFOFO+1)
  845. BDPG=BDPG+XFORC(NBNN*NFOFO+2)
  846. CDPG=CDPG+XFORC(NBNN*NFOFO+3)
  847. ENDIF
  848. C
  849. C RANGEMENT DANS MELVAL
  850. C
  851. IE=0
  852. MPTVAL=IVAFOR
  853. C
  854. C NODE=4= NOMBRE DE NOEUDS
  855. C ICOMP=2= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  856. C
  857. DO NODE=1,NBNN
  858. DO ICOMP=1,NFOFO
  859. IE=IE+1
  860. MELVAL=IVAL(ICOMP)
  861. IBMN=MIN(IB ,VELCHE(/2))
  862. VELCHE(NODE,IBMN)=XFORC(IE)
  863. ENDDO
  864. ENDDO
  865. ENDDO
  866.  
  867. 99170 CONTINUE
  868. SEGSUP WRK1,WRK2,WRK4
  869. GOTO 510
  870. C+PPj
  871. C_______________________________________________________________________
  872. C
  873. C ELEMENT JOINT JCT3 en 2D cisaillement
  874. C_______________________________________________________________________
  875. C
  876. 168 CONTINUE
  877. NBNO=NBNN
  878. NBBB=NBNN
  879. SEGINI WRK1,WRK2,WRK4
  880. C
  881. DO IB=1,NBELEM
  882. C
  883. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  884. C
  885. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  886. C
  887. C MISE A ZERO DES FORCES INTERNES
  888. C
  889. CALL ZERO(XFORC,1,LRE)
  890. C
  891. C REPERE LOCAL
  892. C
  893. CALL JT3LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  894. C
  895. C BOUCLE SUR LES POINTS DE GAUSS
  896. C
  897. DO IGAU=1,NBPGAU
  898. CALL BJT3C(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK,
  899. . BGENE,DJAC,IERT)
  900. IF (IERT.NE.0) THEN
  901. INTERR(1)=IB
  902. CALL ERREUR (611)
  903. GOTO 99168
  904. ENDIF
  905. C
  906. C ON CHERCHE LES CONTRAINTES -
  907. C
  908. MPTVAL=IVASTR
  909. DO ICOMP=1,NSTRS
  910. MELVAL=IVAL(ICOMP)
  911. IGMN=MIN(IGAU,VELCHE(/1))
  912. IBMN=MIN(IB ,VELCHE(/2))
  913. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  914. ENDDO
  915. C
  916. C ON CALCULE B*EFFORTS
  917. C
  918. DJAC=DJAC*POIGAU(IGAU)
  919. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  920. ENDDO
  921. C
  922. C RANGEMENT DANS MELVAL
  923. C
  924. IE=0
  925. MPTVAL=IVAFOR
  926. C
  927. DO NODE=1,NBNN
  928. DO ICOMP=1,NFORC
  929. IE=IE+1
  930. MELVAL=IVAL(ICOMP)
  931. IBMN=MIN(IB ,VELCHE(/2))
  932. VELCHE(NODE,IBMN)=XFORC(IE)
  933. ENDDO
  934. ENDDO
  935. ENDDO
  936.  
  937. 99168 CONTINUE
  938. SEGSUP WRK1,WRK2,WRK4
  939. GOTO 510
  940. C_______________________________________________________________________
  941. C
  942. C ELEMENT JOINT JGT3 GENERALISE
  943. C_______________________________________________________________________
  944. C
  945. 171 CONTINUE
  946. NBNO=NBNN
  947. NBBB=NBNN
  948. SEGINI WRK1,WRK2,WRK4
  949. C
  950. DO IB=1,NBELEM
  951. C
  952. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  953. C
  954. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  955. C
  956. C MISE A ZERO DES FORCES INTERNES
  957. C
  958. CALL ZERO(XFORC,1,LRE)
  959. C
  960. C REPERE LOCAL
  961. C
  962. CALL JT3LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  963. C
  964. C BOUCLE SUR LES POINTS DE GAUSS
  965. C
  966. DO IGAU=1,NBPGAU
  967. C
  968. C ON CHERCHE L'EPAISSEUR DU JOINT
  969. C
  970. EPAIST=0.D0
  971. MPTVAL=IVACAR
  972. MELVAL=IVAL(1)
  973. IF (MELVAL.NE.0) THEN
  974. IGMN=MIN(IGAU,VELCHE(/1))
  975. IBMN=MIN(IB,VELCHE(/2))
  976. EPAIST=VELCHE(IGMN,IBMN)
  977. ENDIF
  978. C
  979. C ON CALCULE B
  980. C
  981. CcPPj CALL BJT3G(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK,
  982. CALL BJT3G(IGAU,MFR,IFOUR,NIFOUR,XE,XEL,BPSS,SHPTOT,SHPWRK,
  983. . EPAIST,BGENE,DJAC,IERT)
  984. IF (IERT.NE.0) THEN
  985. INTERR(1)=IB
  986. CALL ERREUR (611)
  987. GOTO 99171
  988. ENDIF
  989. C
  990. C ON CHERCHE LES CONTRAINTES -
  991. C
  992. MPTVAL=IVASTR
  993. DO ICOMP=1,NSTRS
  994. MELVAL=IVAL(ICOMP)
  995. IGMN=MIN(IGAU,VELCHE(/1))
  996. IBMN=MIN(IB ,VELCHE(/2))
  997. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  998. ENDDO
  999. C
  1000. C ON CALCULE B*EFFORTS
  1001. C
  1002. DJAC=DJAC*POIGAU(IGAU)
  1003. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1004. ENDDO
  1005. C
  1006. C RANGEMENT DANS MELVAL
  1007. C
  1008. IE=0
  1009. MPTVAL=IVAFOR
  1010. C
  1011. DO NODE=1,NBNN
  1012. DO ICOMP=1,NFORC
  1013. IE=IE+1
  1014. MELVAL=IVAL(ICOMP)
  1015. IBMN=MIN(IB ,VELCHE(/2))
  1016. VELCHE(NODE,IBMN)=XFORC(IE)
  1017. ENDDO
  1018. ENDDO
  1019. ENDDO
  1020.  
  1021. 99171 CONTINUE
  1022. SEGSUP WRK1,WRK2,WRK4
  1023. GOTO 510
  1024. C+PPj
  1025. C_______________________________________________________________________
  1026. C
  1027. C ELEMENT JOINT JCI4 en 2D cisaillement
  1028. C_______________________________________________________________________
  1029. C
  1030. 169 CONTINUE
  1031. NBNO=NBNN
  1032. NBBB=NBNN
  1033. SEGINI WRK1,WRK2,WRK4
  1034. C
  1035. DO IB=1,NBELEM
  1036. C
  1037. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1038. C
  1039. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1040. C
  1041. C
  1042. C MISE A ZERO DES FORCES INTERNES
  1043. C
  1044. CALL ZERO(XFORC,1,LRE)
  1045. C
  1046. C REPERE LOCAL
  1047. C
  1048. CALL JO4LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  1049. C
  1050. C BOUCLE SUR LES POINTS DE GAUSS
  1051. C
  1052. DO IGAU=1,NBPGAU
  1053. CALL BJO4C(IGAU,XEL,BPSS,SHPTOT,SHPWRK,BGENE,DJAC,IERT)
  1054. IF (IERT.NE.0) THEN
  1055. INTERR(1)=IB
  1056. CALL ERREUR (611)
  1057. GOTO 99169
  1058. ENDIF
  1059. C
  1060. C ON CHERCHE LES CONTRAINTES -
  1061. C
  1062. MPTVAL=IVASTR
  1063. DO ICOMP=1,NSTRS
  1064. MELVAL=IVAL(ICOMP)
  1065. IGMN=MIN(IGAU,VELCHE(/1))
  1066. IBMN=MIN(IB ,VELCHE(/2))
  1067. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1068. ENDDO
  1069. C
  1070. C ON CALCULE B*EFFORTS
  1071. C
  1072. DJAC=DJAC*POIGAU(IGAU)
  1073. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1074. ENDDO
  1075. C
  1076. C RANGEMENT DANS MELVAL
  1077. C
  1078. IE=0
  1079. MPTVAL=IVAFOR
  1080. C
  1081. C NODE=8= NOMBRE DE NOEUDS
  1082. C ICOMP=3= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  1083. C
  1084. DO NODE=1,NBNN
  1085. DO ICOMP=1,NFORC
  1086. IE=IE+1
  1087. MELVAL=IVAL(ICOMP)
  1088. IBMN=MIN(IB ,VELCHE(/2))
  1089. VELCHE(NODE,IBMN)=XFORC(IE)
  1090. ENDDO
  1091. ENDDO
  1092. ENDDO
  1093.  
  1094. 99169 CONTINUE
  1095. SEGSUP WRK1,WRK2,WRK4
  1096. GOTO 510
  1097. C_______________________________________________________________________
  1098. C
  1099. C ELEMENT JOINT JGI4 GENERALISE
  1100. C_______________________________________________________________________
  1101. C
  1102. 172 CONTINUE
  1103. NBNO=NBNN
  1104. NBBB=NBNN
  1105. SEGINI WRK1,WRK2,WRK4
  1106. C
  1107. DO IB=1,NBELEM
  1108. C
  1109. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1110. C
  1111. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1112. C
  1113. C MISE A ZERO DES FORCES INTERNES
  1114. C
  1115. CALL ZERO(XFORC,1,LRE)
  1116. C
  1117. C REPERE LOCAL
  1118. C
  1119. CALL JO4LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  1120. C
  1121. C BOUCLE SUR LES POINTS DE GAUSS
  1122. C
  1123. DO IGAU=1,NBPGAU
  1124. C
  1125. C ON CHERCHE L'EPAISSEUR DU JOINT
  1126. C
  1127. EPAIST=0.D0
  1128. MPTVAL=IVACAR
  1129. MELVAL=IVAL(1)
  1130. IF (MELVAL.NE.0) THEN
  1131. IGMN=MIN(IGAU,VELCHE(/1))
  1132. IBMN=MIN(IB,VELCHE(/2))
  1133. EPAIST=VELCHE(IGMN,IBMN)
  1134. ENDIF
  1135. C
  1136. C ON CALCULE B
  1137. C
  1138. CcPPj CALL BJO4G(IGAU,XEL,BPSS,SHPTOT,SHPWRK,EPAIST,BGENE,DJAC,IERT)
  1139. CALL BJO4G(IGAU,XE,XEL,BPSS,SHPTOT,SHPWRK,EPAIST,BGENE,DJAC,
  1140. . IERT)
  1141. IF (IERT.NE.0) THEN
  1142. INTERR(1)=IB
  1143. CALL ERREUR (611)
  1144. GOTO 99172
  1145. ENDIF
  1146. C
  1147. C ON CHERCHE LES CONTRAINTES -
  1148. C
  1149. MPTVAL=IVASTR
  1150. DO ICOMP=1,NSTRS
  1151. MELVAL=IVAL(ICOMP)
  1152. IGMN=MIN(IGAU,VELCHE(/1))
  1153. IBMN=MIN(IB ,VELCHE(/2))
  1154. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1155. ENDDO
  1156. C
  1157. C ON CALCULE B*EFFORTS
  1158. C
  1159. DJAC=DJAC*POIGAU(IGAU)
  1160. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1161. ENDDO
  1162. C
  1163. C RANGEMENT DANS MELVAL
  1164. C
  1165. IE=0
  1166. MPTVAL=IVAFOR
  1167. C
  1168. C NODE=8= NOMBRE DE NOEUDS
  1169. C ICOMP=3= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  1170. C
  1171. DO NODE=1,NBNN
  1172. DO ICOMP=1,NFORC
  1173. IE=IE+1
  1174. MELVAL=IVAL(ICOMP)
  1175. IBMN=MIN(IB ,VELCHE(/2))
  1176. VELCHE(NODE,IBMN)=XFORC(IE)
  1177. ENDDO
  1178. ENDDO
  1179. ENDDO
  1180.  
  1181. 99172 CONTINUE
  1182. SEGSUP WRK1,WRK2,WRK4
  1183. GOTO 510
  1184. C+PPj
  1185.  
  1186. C_______________________________________________________________________
  1187. C
  1188. C ELEMENT JOINT (JOI3) IMPLEMENTATION SANS TEST DE PLANEITE
  1189. C ET SANS REPERE LOCAL
  1190. C_______________________________________________________________________
  1191. C
  1192. 86 CONTINUE
  1193. NBNO=NBNN
  1194. NBBB=NBNN
  1195. SEGINI WRK1,WRK2,WRK4
  1196. C
  1197. DO 3086 IB=1,NBELEM
  1198. C
  1199. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1200. C
  1201. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1202. C
  1203. C MISE A ZERO DES FORCES INTERNES
  1204. C
  1205. CALL ZERO(XFORC,1,LRE)
  1206. C
  1207. C BOUCLE SUR LES POINTS DE GAUSS
  1208. C
  1209. DO 6086 IGAU=1,NBPGAU
  1210. C
  1211. CALL JO3LOC(XE,SHPTOT,IGAU,NBNN,BPSS)
  1212. C
  1213. CALL BJO3(IGAU,MFR,IFOUR,NIFOUR,XE,BPSS,SHPTOT,SHPWRK,
  1214. . BGENE,DJAC,IERT)
  1215. IF (IERT.NE.0) THEN
  1216. INTERR(1)=IB
  1217. CALL ERREUR (612)
  1218. GOTO 9986
  1219. ENDIF
  1220. C
  1221. C EN AXISYMETRIE, MULTIPLICATION PAR LE RAYON DE COURBURE
  1222. C (LE RAYON DE COURBURE DOIT ETRE CALCULE AVEC LES COORDONNEES
  1223. C GLOCALES CAR ON FAIT UNE INTEGRATION SUR LA CIRCONFERENCE DE LA
  1224. C STRUCTURE CYLINDRIQUE DANS LE REPERE GLOBAL).
  1225. C
  1226. IF (IFOUR.EQ.0) THEN
  1227. NUMSUP=NBNO/2
  1228. RAYON=0.D0
  1229. DO 6286 IRAY=1,NUMSUP
  1230. RAYON=RAYON+SHPTOT(1,IRAY,IGAU)*XE(1,IRAY)
  1231. 6286 CONTINUE
  1232. DJAC=DJAC*RAYON
  1233. ENDIF
  1234. C
  1235. C ON CHERCHE LES CONTRAINTES -
  1236. C
  1237. MPTVAL=IVASTR
  1238. DO 7086 ICOMP=1,NSTRS
  1239. MELVAL=IVAL(ICOMP)
  1240. IGMN=MIN(IGAU,VELCHE(/1))
  1241. IBMN=MIN(IB ,VELCHE(/2))
  1242. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1243. 7086 CONTINUE
  1244. C
  1245. C ON CALCULE B*EFFORTS
  1246. C
  1247. DJAC=DJAC*POIGAU(IGAU)
  1248. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1249. 6086 CONTINUE
  1250. C
  1251. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  1252. C
  1253. IE=0
  1254. MPTVAL=IVAFOR
  1255. C
  1256. C NODE=6= NOMBRE DE NOEUDS
  1257. C ICOMP=2= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  1258. C
  1259. DO 9086 NODE=1,6
  1260. DO 9086 ICOMP=1,2
  1261. IE=IE+1
  1262. MELVAL=IVAL(ICOMP)
  1263. IBMN=MIN(IB ,VELCHE(/2))
  1264. VELCHE(NODE,IBMN)=XFORC(IE)
  1265. 9086 CONTINUE
  1266. 3086 CONTINUE
  1267.  
  1268. 9986 CONTINUE
  1269. SEGSUP WRK1,WRK2,WRK4
  1270. GOTO 510
  1271.  
  1272. C_______________________________________________________________________
  1273. C
  1274. C ELEMENT JOINT JOT3
  1275. C_______________________________________________________________________
  1276. C
  1277. 87 CONTINUE
  1278. NBNO=NBNN
  1279. NBBB=NBNN
  1280. SEGINI WRK1,WRK2,WRK4
  1281. C
  1282. DO 3087 IB=1,NBELEM
  1283. C
  1284. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1285. C
  1286. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1287. C
  1288. C MISE A ZERO DES FORCES INTERNES
  1289. C
  1290. CALL ZERO(XFORC,1,LRE)
  1291. C
  1292. C REPERE LOCAL
  1293. C
  1294. CALL JT3LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  1295. C
  1296. C BOUCLE SUR LES POINTS DE GAUSS
  1297. C
  1298. DO 6087 IGAU=1,NBPGAU
  1299. CALL BJT3(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK,
  1300. . BGENE,DJAC,IERT)
  1301. IF (IERT.NE.0) THEN
  1302. INTERR(1)=IB
  1303. CALL ERREUR (611)
  1304. GOTO 9987
  1305. ENDIF
  1306. C
  1307. C ON CHERCHE LES CONTRAINTES -
  1308. C
  1309. MPTVAL=IVASTR
  1310. DO 7087 ICOMP=1,NSTRS
  1311. MELVAL=IVAL(ICOMP)
  1312. IGMN=MIN(IGAU,VELCHE(/1))
  1313. IBMN=MIN(IB ,VELCHE(/2))
  1314. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1315. 7087 CONTINUE
  1316. C
  1317. C ON CALCULE B*EFFORTS
  1318. C
  1319. DJAC=DJAC*POIGAU(IGAU)
  1320. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1321. 6087 CONTINUE
  1322. C
  1323. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  1324. C
  1325. C EXPRESSION DE XFORC DANS LE REPERE GLOBAL
  1326. C
  1327. C TRANSPOSEE DE BPSS = INVERSE DE BPSS ( MATRICE ORTHOGONALE )
  1328. C DONC : TRPOSE(BPSS) = MATRICE DE PASSAGE DU REPERE LOCAL
  1329. C AU REPERE GLOBAL
  1330. C
  1331. CCCCC CALL TRPOSE(BPSS)
  1332. CCCCC CALL MATVEC(XFORC,XFOLO,BPSS,8)
  1333. IE=0
  1334. MPTVAL=IVAFOR
  1335. C
  1336. C NODE=6= NOMBRE DE NOEUDS
  1337. C ICOMP=3= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  1338. C
  1339. DO 9087 NODE=1,6
  1340. DO 9087 ICOMP=1,3
  1341. IE=IE+1
  1342. MELVAL=IVAL(ICOMP)
  1343. IBMN=MIN(IB ,VELCHE(/2))
  1344. VELCHE(NODE,IBMN)=XFORC(IE)
  1345. 9087 CONTINUE
  1346. 3087 CONTINUE
  1347.  
  1348. 9987 CONTINUE
  1349. SEGSUP WRK1,WRK2,WRK4
  1350. GOTO 510
  1351. C_______________________________________________________________________
  1352. C
  1353. C ELEMENT JOINT JOI4
  1354. C_______________________________________________________________________
  1355. C
  1356. 88 CONTINUE
  1357. NBNO=NBNN
  1358. NBBB=NBNN
  1359. SEGINI WRK1,WRK2,WRK4
  1360. C
  1361. DO 3088 IB=1,NBELEM
  1362. C
  1363. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1364. C
  1365. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1366. C
  1367. C MISE A ZERO DES FORCES INTERNES
  1368. C
  1369. CALL ZERO(XFORC,1,LRE)
  1370. C
  1371. C REPERE LOCAL
  1372. C
  1373. CALL JO4LOC(XE,SHPTOT,NBNN,XEL,BPSS,NOQUAL)
  1374. C
  1375. C BOUCLE SUR LES POINTS DE GAUSS
  1376. C
  1377. DO 6088 IGAU=1,NBPGAU
  1378. CALL BJO4(IGAU,XEL,BPSS,SHPTOT,SHPWRK,BGENE,DJAC,IERT)
  1379. IF (IERT.NE.0) THEN
  1380. INTERR(1)=IB
  1381. CALL ERREUR (611)
  1382. GOTO 9988
  1383. ENDIF
  1384. C
  1385. C ON CHERCHE LES CONTRAINTES -
  1386. C
  1387. MPTVAL=IVASTR
  1388. DO 7088 ICOMP=1,NSTRS
  1389. MELVAL=IVAL(ICOMP)
  1390. IGMN=MIN(IGAU,VELCHE(/1))
  1391. IBMN=MIN(IB ,VELCHE(/2))
  1392. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1393. 7088 CONTINUE
  1394. C
  1395. C ON CALCULE B*EFFORTS
  1396. C
  1397. DJAC=DJAC*POIGAU(IGAU)
  1398. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1399. 6088 CONTINUE
  1400. C
  1401. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  1402. C
  1403. C EXPRESSION DE XFORC DANS LE REPERE GLOBAL
  1404. C
  1405. C TRANSPOSEE DE BPSS = INVERSE DE BPSS ( MATRICE ORTHOGONALE )
  1406. C DONC : TRPOSE(BPSS) = MATRICE DE PASSAGE DU REPERE LOCAL
  1407. C AU REPERE GLOBAL
  1408. C
  1409. CCCCC CALL TRPOSE(BPSS)
  1410. CCCCC CALL MATVEC(XFORC,XFOLO,BPSS,8)
  1411. IE=0
  1412. MPTVAL=IVAFOR
  1413. C
  1414. C NODE=8= NOMBRE DE NOEUDS
  1415. C ICOMP=3= NOMBRE DE COMPOSANTES DE CONTRAINTES PAR NOEUD
  1416. C
  1417. DO 9088 NODE=1,8
  1418. DO 9088 ICOMP=1,3
  1419. IE=IE+1
  1420. MELVAL=IVAL(ICOMP)
  1421. IBMN=MIN(IB ,VELCHE(/2))
  1422. VELCHE(NODE,IBMN)=XFORC(IE)
  1423. 9088 CONTINUE
  1424. 3088 CONTINUE
  1425.  
  1426. 9988 CONTINUE
  1427. SEGSUP WRK1,WRK2,WRK4
  1428. GOTO 510
  1429. C_______________________________________________________________________
  1430. C
  1431. C ELEMENT DST
  1432. C_______________________________________________________________________
  1433. C
  1434. 93 CONTINUE
  1435. LHOOK=NSTRS
  1436. NBNO=NBNN
  1437. NBBB=NBNN
  1438. SEGINI WRK1,WRK2,WRK3,WRK4
  1439. IF(CMATE.NE.'ISOTROPE')THEN
  1440. MPTVAL=IVAMAT
  1441. IF(IMAT.EQ.1.AND.CMATE.EQ.'ORTHOTRO')THEN
  1442. MELVAL=IVAL(7)
  1443. ELSE
  1444. MELVAL=IVAL(2)
  1445. ENDIF
  1446. NBGCOS=VELCHE(/1)
  1447. ENDIF
  1448. C
  1449. DO 3093 IB=1,NBELEM
  1450. C
  1451. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1452. C
  1453. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1454. C
  1455. C MISE A ZERO DES FORCES INTERNES
  1456. C
  1457. CALL ZERO(XFORC,1,LRE)
  1458. C
  1459. CALL VPAST(XE,BPSS)
  1460. C BPSS STOCKE LA MATRICOMPE DE PASSAGE
  1461. CALL VCORLC (XE,XEL,BPSS)
  1462. CALL TRPOSE(BPSS)
  1463. C ON CHERCHE LES EPAISEURS ET ON LES MOYENNE,
  1464. C LES EXCENTREMENTS ET ON LES MOYENNE.
  1465. C
  1466. MPTVAL=IVACAR
  1467. C
  1468. EPAIST=0.D0
  1469. MELVAL=IVAL(1)
  1470. IF (MELVAL.NE.0) THEN
  1471. DO IGAU=1,NBPGAU
  1472. IGMN=MIN(IGAU,VELCHE(/1))
  1473. IBMN=MIN(IB,VELCHE(/2))
  1474. EPAIST=EPAIST+VELCHE(IGMN,IBMN)
  1475. ENDDO
  1476. EPAIST=EPAIST/NBPGAU
  1477. ENDIF
  1478. *
  1479. EXCEN=0.D0
  1480. MELVAL=IVAL(2)
  1481. IF (MELVAL.NE.0) THEN
  1482. DO IGAU=1,NBPGAU
  1483. IGMN=MIN(IGAU,VELCHE(/1))
  1484. IBMN=MIN(IB,VELCHE(/2))
  1485. EXCEN=EXCEN+VELCHE(IGMN,IBMN)
  1486. ENDDO
  1487. EXCEN=EXCEN/NBPGAU
  1488. ENDIF
  1489. C
  1490. C BOUCLE SUR LES POINTS DE GAUSS
  1491. C
  1492. DO 6093 IGAU=1,NBPGAU
  1493. *
  1494. IF(CMATE.NE.'ISOTROPE')THEN
  1495. IF(IGAU.LE.NBGCOS)THEN
  1496. IF(IMAT.EQ.2)THEN
  1497. MPTVAL=IVAMAT
  1498. MELVAL=IVAL(2)
  1499. IBMN=MIN(IB ,VELCHE(/2))
  1500. IGMN=MIN(IGAU,VELCHE(/1))
  1501. COSA=VELCHE(IGMN,IBMN)
  1502. MELVAL=IVAL(3)
  1503. IBMN=MIN(IB ,VELCHE(/2))
  1504. IGMN=MIN(IGAU,VELCHE(/1))
  1505. SINA=VELCHE(IGMN,IBMN)
  1506. ENDIF
  1507. ENDIF
  1508. ENDIF
  1509. C
  1510. C ON CHERCHE LA MATRICE DE HOOKE
  1511. C
  1512. MPTVAL=IVAMAT
  1513. IF(IMAT.EQ.2) THEN
  1514. MELVAL=IVAL(1)
  1515. IBMN=MIN(IB ,IELCHE(/2))
  1516. IGMN=MIN(IGAU,IELCHE(/1))
  1517. MLREEL=IELCHE(IGMN,IBMN)
  1518. IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.
  1519. + OR.NBGMAT.GT.1)) THEN
  1520. SEGACT MLREEL
  1521. CALL DOHOOO(PROG,LHOOK,DDHOMU)
  1522. SEGDES MLREEL
  1523. IF(CMATE.EQ.'ORTHOTRO')
  1524. + CALL CHGREP1(COSA,SINA,DDHOMU,LHOOK)
  1525. ENDIF
  1526. ELSE IF (IMAT.EQ.1) THEN
  1527. DO 9193 IM=1,NMATT
  1528. IF (IVAL(IM).NE.0) THEN
  1529. MELVAL=IVAL(IM)
  1530. IBMN=MIN(IB ,VELCHE(/2))
  1531. IGMN=MIN(IGAU,VELCHE(/1))
  1532. VALMAT(IM)=VELCHE(IGMN,IBMN)
  1533. ELSE
  1534. VALMAT(IM)=0.D0
  1535. ENDIF
  1536. 9193 CONTINUE
  1537. IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1))
  1538. 1 CALL DOHDST(VALMAT,CMATE,IFOUR,NSTRS,DDHOOK,IRTD)
  1539. CALL HOOKMU(EPAIST,0.D0,LHOOK,DDHOOK,DDHOMU)
  1540. ENDIF
  1541. CALL ZERO(BGENE,NSTRS,LRE)
  1542. IF(CMATE.NE.'ISOTROPE')THEN
  1543. IF(IGAU.LE.NBGCOS)THEN
  1544. IF(IMAT.EQ.1)THEN
  1545. COSA=VALMAT(7)
  1546. SINA=VALMAT(8)
  1547. ENDIF
  1548. DO 1393 INO=1,NBNN
  1549. XX=COSA*XEL(1,INO)+SINA*XEL(2,INO)
  1550. YY=(-SINA)*XEL(1,INO)+COSA*XEL(2,INO)
  1551. XE(1,INO)=XX
  1552. XE(2,INO)=YY
  1553. 1393 CONTINUE
  1554. ENDIF
  1555. C
  1556. C TERMES DE LA MATRICE DE RIGIDITE RELATIFS
  1557. C AUX CISAILLEMENTS TRANSVERSES
  1558. C
  1559. CALL RCDST(XE,NSTRS,LRE,DDHOMU,
  1560. 1 WORK(1),WORK(10),WORK(19),REL,BGENE,1)
  1561. C
  1562. C TERMES DE LA MATRICE B RELATIFS AUX EFFETS
  1563. C DE MEMBRANE ET DE FLEXION
  1564. C
  1565. CALL BMFDST(IGAU,XE,NSTRS,QSIGAU,ETAGAU,SHPTOT,SHPWRK,
  1566. 1 WORK(1),WORK(10),WORK(19),BGENE,DUM)
  1567. *
  1568. CALL ROTB(BGENE,NSTRS,COSA,SINA)
  1569. *
  1570. DO 10 NPOI=1,3
  1571. SHPWRK(1,NPOI)=SHPTOT(1,NPOI,IGAU)
  1572. SHPWRK(2,NPOI)=SHPTOT(2,NPOI,IGAU)
  1573. SHPWRK(3,NPOI)=SHPTOT(3,NPOI,IGAU)
  1574. 10 CONTINUE
  1575. CALL JACOBI(XEL,SHPWRK,2,3,DJAC)
  1576. ELSE
  1577. C
  1578. C TERMES DE LA MATRICE B RELATIFS AUX CISAILLEMENTS TRANSVERSES
  1579. C
  1580. CALL RCDST(XEL,NSTRS,LRE,DDHOMU,
  1581. 1 WORK(1),WORK(10),WORK(19),REL,BGENE,1)
  1582. C
  1583. C TERMES DE LA MATRICE B RELATIFS AUX EFFETS
  1584. C DE MEMBRANE ET DE FLEXION
  1585. C
  1586. CALL BMFDST(IGAU,XEL,NSTRS,QSIGAU,ETAGAU,SHPTOT,SHPWRK,
  1587. 1 WORK(1),WORK(10),WORK(19),BGENE,DJAC)
  1588. ENDIF
  1589. DJAC=DJAC*POIGAU(IGAU)
  1590. *
  1591. * ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT
  1592. *
  1593. DO 1593 IJL=1,3
  1594. DO 1593 IJC=1,LRE
  1595. BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC)
  1596. 1593 CONTINUE
  1597. C
  1598. C ON CHERCHE LES CONTRAINTES
  1599. C
  1600. MPTVAL=IVASTR
  1601. DO 7093 ICOMP=1,NSTRS
  1602. MELVAL=IVAL(ICOMP)
  1603. IGMN=MIN(IGAU,VELCHE(/1))
  1604. IBMN=MIN(IB ,VELCHE(/2))
  1605. XSTRS(ICOMP)=VELCHE(IGMN,IBMN)
  1606. 7093 CONTINUE
  1607. *
  1608. * TRANSFORMATION DES CONTRAINTES DU REPERE LOCAL AU REPERE
  1609. * D'ORTHOTROPIE
  1610. *
  1611. IF(CMATE.EQ.'ORTHOTRO')
  1612. 1 CALL CHGREP2(COSA,SINA,XSTRS,1,1)
  1613. C
  1614. C ON CALCULE B*EFFORTS
  1615. C
  1616. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,DJAC,XFORC)
  1617. 6093 CONTINUE
  1618. C
  1619. C TRAITEMENT DE XFORC ET RANGEMENT DANS MELVAL
  1620. C
  1621. CALL MATVEC(XFORC,XFOLO,BPSS,6)
  1622. IE=0
  1623. MPTVAL=IVAFOR
  1624. DO 9093 IGAU=1,NBNN
  1625. DO 9093 ICOMP=1,6
  1626. IE=IE+1
  1627. MELVAL=IVAL(ICOMP)
  1628. IBMN=MIN(IB ,VELCHE(/2))
  1629. VELCHE(IGAU,IBMN)=XFOLO(IE)
  1630. 9093 CONTINUE
  1631. 3093 CONTINUE
  1632.  
  1633. 9993 CONTINUE
  1634. SEGSUP WRK1,WRK2,WRK3,WRK4,MVELCH
  1635. GOTO 510
  1636. C_______________________________________________________________________
  1637. C
  1638. C ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION
  1639. C_______________________________________________________________________
  1640. C
  1641. 258 CONTINUE
  1642. NBNO=NBNN
  1643. NBBB=NBNN
  1644. SEGINI WRK1,WRK2,WRK4
  1645. C
  1646. DO IB=1,NBELEM
  1647. C
  1648. C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  1649. C
  1650. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  1651. C
  1652. C MISE A ZERO DES FORCES INTERNES
  1653. C
  1654. CALL ZERO(XFORC,1,LRE)
  1655. C
  1656. C PASSAGE DES AXES GLOBAUX AUX AXES LOCAUX
  1657. C
  1658. CALL MURLOC(XE,NBNN,NSTRS,LRE,BPSS,XH,BGENE)
  1659. C
  1660. C ON CHERCHE LES CONTRAINTES -
  1661. C
  1662. MPTVAL=IVASTR
  1663. DO ICOMP=1,NSTRS
  1664. MELVAL=IVAL(ICOMP)
  1665. IBMN=MIN(IB ,VELCHE(/2))
  1666. XSTRS(ICOMP)=VELCHE(1,IBMN)
  1667. ENDDO
  1668. C
  1669. C ON CALCULE B*EFFORTS
  1670. C
  1671. CALL BSIG(BGENE,XSTRS,NSTRS,LRE,1.D0,XFORC)
  1672. C
  1673. C RANGEMENT DANS MELVAL
  1674. C
  1675. IE=0
  1676. MPTVAL=IVAFOR
  1677. C
  1678. C ON RANGE LES FORCES (FX1,FY1,MZ1,FX2,FY2,MZ2,FM,MM)
  1679. C
  1680. MELVAL=IVAL(1)
  1681. VELCHE(1,IB)=XFORC(1)
  1682. VELCHE(3,IB)=XFORC(4)
  1683. MELVAL=IVAL(2)
  1684. VELCHE(1,IB)=XFORC(2)
  1685. VELCHE(3,IB)=XFORC(5)
  1686. MELVAL=IVAL(3)
  1687. VELCHE(1,IB)=XFORC(3)
  1688. VELCHE(3,IB)=XFORC(6)
  1689. MELVAL=IVAL(4)
  1690. VELCHE(2,IB)=XFORC(7)
  1691. MELVAL=IVAL(5)
  1692. VELCHE(2,IB)=XFORC(8)
  1693. ENDDO
  1694. SEGSUP WRK1,WRK2,WRK4
  1695. GOTO 510
  1696. C_______________________________________________________________________
  1697. *
  1698. 99 CONTINUE
  1699. MOTERR(1:4)=NOMTP(MELE)
  1700. MOTERR(5:12)='BSIGM2'
  1701. CALL ERREUR(86)
  1702. *
  1703. 510 CONTINUE
  1704. RETURN
  1705. END
  1706.  
  1707.  
  1708.  

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