Télécharger incoms.eso

Retour à la liste

Numérotation des lignes :

incoms
  1. C INCOMS SOURCE GOUNAND 21/06/02 21:16:24 11022
  2. SUBROUTINE INCOMS(MYCOMS,CGEOM2,LERF,IMPR,IRET)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : INCOMS
  7. C PROJET : Noyau linéaire NLIN
  8. C DESCRIPTION : Initialise le segment contenant les informations sur
  9. C les lois de comportement
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELES :
  16. C APPELES (E/S) :
  17. C APPELE PAR :
  18. C***********************************************************************
  19. C ENTREES : -
  20. C SORTIES : MYCOMS
  21. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22. C***********************************************************************
  23. C VERSION : v1, 10/05/04, version initiale
  24. C HISTORIQUE : v1, 10/05/04, création
  25. C HISTORIQUE :
  26. C HISTORIQUE :
  27. C***********************************************************************
  28. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  29. C en cas de modification de ce sous-programme afin de faciliter
  30. C la maintenance !
  31. C***********************************************************************
  32.  
  33. -INC PPARAM
  34. -INC CCOPTIO
  35. -INC SMELEME
  36. POINTEUR CGEOM2.MELEME
  37. -INC SMLMOTS
  38. POINTEUR LNCOM.MLMOTS
  39. -INC TNLIN
  40. *-INC SLCOMP
  41. POINTEUR MYCOMS.COMPS
  42. POINTEUR COCOUR.COMP
  43. *
  44. INTEGER IMPR,IRET
  45. CHARACTER*8 BLANC
  46. CHARACTER*8 NCOM
  47. INTEGER IDIM0,IDIM1,IDIM2,IDIM3,IDIM4
  48. CHARACTER*1 CDIM0,CDIM1,CDIM2,CDIM3,CDIM4,CMETH,CIH
  49. CHARACTER*1 CID
  50. *
  51. *
  52. * Executable statements
  53. *
  54. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans incoms'
  55. BLANC=' '
  56. SEGINI MYCOMS
  57. *
  58. * Détermination de la dimension de l'espace de dérivation
  59. *
  60. IF (LERF.NE.0) THEN
  61. CALL DIMESH(CGEOM2,IDMESH,IMPR,IRET)
  62. IF (IRET.NE.0) GOTO 9999
  63. IESDER=IDMESH
  64. ELSE
  65. IESDER=IDIM
  66. ENDIF
  67. *
  68. * Loi de comportement RIEN
  69. *
  70. NCOM=BLANC
  71. NCOM='RIEN'
  72. NCOCOF=0
  73. SEGINI COCOUR
  74. COCOUR.NOMCOM=NCOM
  75. COCOUR.LTREF=.FALSE.
  76. SEGDES COCOUR
  77. MYCOMS.LISCOM(**)=COCOUR
  78. *
  79. * Loi de comportement IDEN
  80. *
  81. NCOM=BLANC
  82. NCOM='IDEN'
  83. NCOCOF=1
  84. SEGINI COCOUR
  85. COCOUR.NOMCOM=NCOM
  86. COCOUR.DERCOF(1)=0
  87. COCOUR.LTREF=.FALSE.
  88. SEGDES COCOUR
  89. MYCOMS.LISCOM(**)=COCOUR
  90. *
  91. * Loi de comportement rays = epsi * sigma * T^3
  92. *
  93. NCOM=BLANC
  94. NCOM='RAYS'
  95. NCOCOF=3
  96. SEGINI COCOUR
  97. COCOUR.NOMCOM=NCOM
  98. COCOUR.DERCOF(1)=0
  99. COCOUR.DERCOF(2)=0
  100. COCOUR.DERCOF(3)=0
  101. COCOUR.LTREF=.FALSE.
  102. SEGDES COCOUR
  103. MYCOMS.LISCOM(**)=COCOUR
  104. *
  105. * Loi de comportement MUR
  106. *
  107. NCOM=BLANC
  108. NCOM='MUR'
  109. NCOCOF=4
  110. SEGINI COCOUR
  111. COCOUR.NOMCOM=NCOM
  112. COCOUR.DERCOF(1)=0
  113. COCOUR.DERCOF(2)=0
  114. COCOUR.DERCOF(3)=0
  115. COCOUR.DERCOF(4)=0
  116. COCOUR.LTREF=.FALSE.
  117. SEGDES COCOUR
  118. MYCOMS.LISCOM(**)=COCOUR
  119. *
  120. * Loi de comportement SUTH
  121. *
  122. NCOM=BLANC
  123. NCOM='SUTH'
  124. NCOCOF=3
  125. SEGINI COCOUR
  126. COCOUR.NOMCOM=NCOM
  127. COCOUR.DERCOF(1)=0
  128. COCOUR.DERCOF(2)=0
  129. COCOUR.DERCOF(3)=0
  130. COCOUR.LTREF=.FALSE.
  131. SEGDES COCOUR
  132. MYCOMS.LISCOM(**)=COCOUR
  133. *
  134. * Loi de comportement DDX{1..IESDER}
  135. *
  136. DO IID=1,IESDER
  137. CALL INT2CH(IID,CID,IMPR,IRET)
  138. IF (IRET.NE.0) GOTO 9999
  139. NCOM=BLANC
  140. NCOM='D/DX'
  141. NCOM(5:5)=CID
  142. NCOCOF=1
  143. SEGINI COCOUR
  144. COCOUR.NOMCOM=NCOM
  145. COCOUR.DERCOF(1)=1
  146. COCOUR.LTREF=.FALSE.
  147. SEGDES COCOUR
  148. MYCOMS.LISCOM(**)=COCOUR
  149. ENDDO
  150. *
  151. * Loi de comportement DIV
  152. *
  153. NCOM=BLANC
  154. NCOM='DIV'
  155. NCOCOF=IESDER
  156. SEGINI COCOUR
  157. COCOUR.NOMCOM=NCOM
  158. DO IIDIM=1,IESDER
  159. COCOUR.DERCOF(IIDIM)=1
  160. ENDDO
  161. COCOUR.LTREF=.FALSE.
  162. SEGDES COCOUR
  163. MYCOMS.LISCOM(**)=COCOUR
  164. *
  165. * Loi de comportement MAXI
  166. *
  167. NCOM=BLANC
  168. NCOM='MAXI'
  169. NCOCOF=1
  170. SEGINI COCOUR
  171. COCOUR.NOMCOM=NCOM
  172. COCOUR.DERCOF(1)=0
  173. COCOUR.LTREF=.FALSE.
  174. SEGDES COCOUR
  175. MYCOMS.LISCOM(**)=COCOUR
  176. *
  177. * Loi de comportement TAU
  178. *
  179. NCOM=BLANC
  180. NCOM='TAU'
  181. NCOCOF=5
  182. SEGINI COCOUR
  183. COCOUR.NOMCOM=NCOM
  184. COCOUR.DERCOF(1)=0
  185. COCOUR.DERCOF(2)=0
  186. COCOUR.DERCOF(3)=0
  187. COCOUR.DERCOF(4)=0
  188. COCOUR.DERCOF(5)=0
  189. COCOUR.LTREF=.FALSE.
  190. SEGDES COCOUR
  191. MYCOMS.LISCOM(**)=COCOUR
  192. *
  193. * Loi de comportement SIGMA
  194. *
  195. NCOM=BLANC
  196. NCOM='SIGMA'
  197. NCOCOF=5
  198. SEGINI COCOUR
  199. COCOUR.NOMCOM=NCOM
  200. COCOUR.DERCOF(1)=0
  201. COCOUR.DERCOF(2)=0
  202. COCOUR.DERCOF(3)=0
  203. COCOUR.DERCOF(4)=0
  204. COCOUR.DERCOF(5)=0
  205. COCOUR.LTREF=.FALSE.
  206. SEGDES COCOUR
  207. MYCOMS.LISCOM(**)=COCOUR
  208. *
  209. * Loi de comportement TAILDIRE
  210. *
  211. NCOM=BLANC
  212. NCOM='TAILDIRE'
  213. NCOCOF=IDIM
  214. SEGINI COCOUR
  215. COCOUR.NOMCOM=NCOM
  216. DO IIDIM=1,IDIM
  217. COCOUR.DERCOF(IIDIM)=0
  218. ENDDO
  219. COCOUR.LTREF=.TRUE.
  220. SEGDES COCOUR
  221. MYCOMS.LISCOM(**)=COCOUR
  222. *
  223. * Loi de comportement VOLORI
  224. *
  225. NCOM=BLANC
  226. NCOM='VOLORI'
  227. NCOCOF=0
  228. SEGINI COCOUR
  229. COCOUR.NOMCOM=NCOM
  230. COCOUR.LTREF=.TRUE.
  231. SEGDES COCOUR
  232. MYCOMS.LISCOM(**)=COCOUR
  233. *
  234. * Loi de comportement MADSMID
  235. * max |d|/min|d| où d=det J
  236. * avec un signe moins si d change de signe
  237. *
  238. NCOM=BLANC
  239. NCOM='MADSMID'
  240. NCOCOF=0
  241. SEGINI COCOUR
  242. COCOUR.NOMCOM=NCOM
  243. COCOUR.LTREF=.TRUE.
  244. SEGDES COCOUR
  245. MYCOMS.LISCOM(**)=COCOUR
  246. *
  247. * Loi de comportement AHUF : Huang
  248. * AHPF : Huang préconditionné
  249. *
  250. DO ICOPO=1,2
  251. IF (ICOPO.EQ.1) THEN
  252. CIH='U'
  253. ELSE
  254. CIH='P'
  255. ENDIF
  256. NARG=2
  257. NCOM=BLANC
  258. NCOM='AH?F'
  259. NCOM(3:3)=CIH
  260. NCOCOF=((IDIM*(IDIM+1))/2)+NARG
  261. SEGINI COCOUR
  262. COCOUR.NOMCOM=NCOM
  263. * Plus clair, mais inutile
  264. * DO ICOCOF=1,NCOCOF
  265. * COCOUR.DERCOF(ICOCOF)=0
  266. * ENDDO
  267. COCOUR.LTREF=.TRUE.
  268. SEGDES COCOUR
  269. MYCOMS.LISCOM(**)=COCOUR
  270. *
  271. * Lois de comportement AHUR{1..idim}*{0..iesder}
  272. *
  273. DO IDIM1=1,IDIM
  274. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  275. IF (IRET.NE.0) GOTO 9999
  276. DO IDIM2=0,IESDER
  277. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  278. IF (IRET.NE.0) GOTO 9999
  279. NCOM=BLANC
  280. NCOM='AH?R'
  281. NCOM(3:3)=CIH
  282. NCOM(5:5)=CDIM1
  283. NCOM(6:6)=CDIM2
  284. NCOCOF=((IDIM*(IDIM+1))/2)+NARG
  285. SEGINI COCOUR
  286. COCOUR.NOMCOM=NCOM
  287. COCOUR.LTREF=.TRUE.
  288. SEGDES COCOUR
  289. MYCOMS.LISCOM(**)=COCOUR
  290. ENDDO
  291. ENDDO
  292. *
  293. * Lois de comportement AHUJ{1..idim}*4
  294. *
  295. DO IDIM1=1,IDIM
  296. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  297. IF (IRET.NE.0) GOTO 9999
  298. DO IDIM2=0,IESDER
  299. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  300. IF (IRET.NE.0) GOTO 9999
  301. DO IDIM3=1,IDIM
  302. CALL INT2CH(IDIM3,CDIM3,IMPR,IRET)
  303. IF (IRET.NE.0) GOTO 9999
  304. DO IDIM4=0,IESDER
  305. CALL INT2CH(IDIM4,CDIM4,IMPR,IRET)
  306. IF (IRET.NE.0) GOTO 9999
  307. NCOM=BLANC
  308. NCOM='AH?J'
  309. NCOM(3:3)=CIH
  310. NCOM(5:5)=CDIM1
  311. NCOM(6:6)=CDIM2
  312. NCOM(7:7)=CDIM3
  313. NCOM(8:8)=CDIM4
  314. NCOCOF=((IDIM*(IDIM+1))/2)+NARG
  315. SEGINI COCOUR
  316. COCOUR.NOMCOM=NCOM
  317. COCOUR.LTREF=.TRUE.
  318. SEGDES COCOUR
  319. MYCOMS.LISCOM(**)=COCOUR
  320. ENDDO
  321. ENDDO
  322. ENDDO
  323. ENDDO
  324. ENDDO
  325. *
  326. * Loi de comportement Qualité de maillage
  327. *
  328. DO IQ=1,2
  329. NCOM=BLANC
  330. IF (IQ.EQ.1) THEN
  331. NCOM='QEQU'
  332. ELSE
  333. NCOM='QALI'
  334. ENDIF
  335. NCOCOF=((IDIM*(IDIM+1))/2)
  336. SEGINI COCOUR
  337. COCOUR.NOMCOM=NCOM
  338. COCOUR.LTREF=.TRUE.
  339. SEGDES COCOUR
  340. MYCOMS.LISCOM(**)=COCOUR
  341. ENDDO
  342. *
  343. * Lois de comportement MUSTAB{1,2,3}{1..idim}
  344. * (viscosité numérique)
  345. *
  346. DO IMETH=1,3
  347. CALL INT2CH(IMETH,CMETH,IMPR,IRET)
  348. IF (IRET.NE.0) GOTO 9999
  349. DO IDIM1=0,IDIM
  350. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  351. IF (IRET.NE.0) GOTO 9999
  352. NCOM=BLANC
  353. NCOM='MUSTAB'
  354. NCOM(7:7)=CMETH
  355. NCOM(8:8)=CDIM1
  356. NCOCOF=IDIM+3
  357. SEGINI COCOUR
  358. COCOUR.NOMCOM=NCOM
  359. COCOUR.LTREF=.TRUE.
  360. SEGDES COCOUR
  361. MYCOMS.LISCOM(**)=COCOUR
  362. ENDDO
  363. ENDDO
  364. *
  365. * Loi de comportement TSUF : Tension de surface
  366. *
  367. NCOM=BLANC
  368. NCOM='TSUF'
  369. NCOCOF=1
  370. SEGINI COCOUR
  371. COCOUR.NOMCOM=NCOM
  372. COCOUR.LTREF=.TRUE.
  373. SEGDES COCOUR
  374. MYCOMS.LISCOM(**)=COCOUR
  375. *
  376. * Lois de comportement TSUR{1..idim}*{0..iesder}
  377. *
  378. DO IDIM1=0,IDIM
  379. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  380. IF (IRET.NE.0) GOTO 9999
  381. DO IDIM2=0,IESDER
  382. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  383. IF (IRET.NE.0) GOTO 9999
  384. NCOM=BLANC
  385. NCOM='TSUR'
  386. NCOM(5:5)=CDIM1
  387. NCOM(6:6)=CDIM2
  388. NCOCOF=1
  389. SEGINI COCOUR
  390. COCOUR.NOMCOM=NCOM
  391. COCOUR.LTREF=.TRUE.
  392. SEGDES COCOUR
  393. MYCOMS.LISCOM(**)=COCOUR
  394. ENDDO
  395. ENDDO
  396. *
  397. * Lois de comportement TSUJ{1..idim}*4
  398. *
  399. DO IDIM1=1,IDIM
  400. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  401. IF (IRET.NE.0) GOTO 9999
  402. DO IDIM2=0,IESDER
  403. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  404. IF (IRET.NE.0) GOTO 9999
  405. DO IDIM3=1,IDIM
  406. CALL INT2CH(IDIM3,CDIM3,IMPR,IRET)
  407. IF (IRET.NE.0) GOTO 9999
  408. DO IDIM4=0,IESDER
  409. CALL INT2CH(IDIM4,CDIM4,IMPR,IRET)
  410. IF (IRET.NE.0) GOTO 9999
  411. NCOM=BLANC
  412. NCOM='TSUJ'
  413. NCOM(5:5)=CDIM1
  414. NCOM(6:6)=CDIM2
  415. NCOM(7:7)=CDIM3
  416. NCOM(8:8)=CDIM4
  417. NCOCOF=1
  418. SEGINI COCOUR
  419. COCOUR.NOMCOM=NCOM
  420. COCOUR.LTREF=.TRUE.
  421. SEGDES COCOUR
  422. MYCOMS.LISCOM(**)=COCOUR
  423. ENDDO
  424. ENDDO
  425. ENDDO
  426. ENDDO
  427. *
  428. * Lois de comportement TSU{1..4}{1..idim}*4
  429. *
  430. DO IDIM0=1,4
  431. CALL INT2CH(IDIM0,CDIM0,IMPR,IRET)
  432. IF (IRET.NE.0) GOTO 9999
  433. DO IDIM1=1,IDIM
  434. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  435. IF (IRET.NE.0) GOTO 9999
  436. DO IDIM2=0,IESDER
  437. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  438. IF (IRET.NE.0) GOTO 9999
  439. DO IDIM3=1,IDIM
  440. CALL INT2CH(IDIM3,CDIM3,IMPR,IRET)
  441. IF (IRET.NE.0) GOTO 9999
  442. DO IDIM4=0,IESDER
  443. CALL INT2CH(IDIM4,CDIM4,IMPR,IRET)
  444. IF (IRET.NE.0) GOTO 9999
  445. NCOM=BLANC
  446. NCOM='TSU'
  447. NCOM(4:4)=CDIM0
  448. NCOM(5:5)=CDIM1
  449. NCOM(6:6)=CDIM2
  450. NCOM(7:7)=CDIM3
  451. NCOM(8:8)=CDIM4
  452. NCOCOF=1
  453. SEGINI COCOUR
  454. COCOUR.NOMCOM=NCOM
  455. COCOUR.LTREF=.TRUE.
  456. SEGDES COCOUR
  457. MYCOMS.LISCOM(**)=COCOUR
  458. ENDDO
  459. ENDDO
  460. ENDDO
  461. ENDDO
  462. ENDDO
  463. *
  464. * Lois de comportement VNOR{1..idim}
  465. *
  466. DO IDIM1=1,IDIM
  467. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  468. IF (IRET.NE.0) GOTO 9999
  469. NCOM=BLANC
  470. NCOM='VNOR'
  471. NCOM(5:5)=CDIM1
  472. NCOCOF=0
  473. SEGINI COCOUR
  474. COCOUR.NOMCOM=NCOM
  475. COCOUR.LTREF=.TRUE.
  476. SEGDES COCOUR
  477. MYCOMS.LISCOM(**)=COCOUR
  478. ENDDO
  479. *
  480. * Lois de comportement VNOJ{1..idim}*3
  481. *
  482. DO IDIM1=1,IDIM
  483. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  484. IF (IRET.NE.0) GOTO 9999
  485. DO IDIM2=0,IDIM
  486. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  487. IF (IRET.NE.0) GOTO 9999
  488. DO IDIM3=1,IDIM
  489. CALL INT2CH(IDIM3,CDIM3,IMPR,IRET)
  490. IF (IRET.NE.0) GOTO 9999
  491. NCOM=BLANC
  492. NCOM='VNOJ'
  493. NCOM(5:5)=CDIM1
  494. NCOM(6:6)=CDIM2
  495. NCOM(7:7)=CDIM3
  496. NCOCOF=0
  497. SEGINI COCOUR
  498. COCOUR.NOMCOM=NCOM
  499. COCOUR.LTREF=.TRUE.
  500. SEGDES COCOUR
  501. MYCOMS.LISCOM(**)=COCOUR
  502. ENDDO
  503. ENDDO
  504. ENDDO
  505. *
  506. * Lois de comportement IMET{1..idim}{idim1..idim}
  507. *
  508. DO IDIM1=1,IDIM
  509. CALL INT2CH(IDIM1,CDIM1,IMPR,IRET)
  510. IF (IRET.NE.0) GOTO 9999
  511. DO IDIM2=IDIM1,IDIM
  512. CALL INT2CH(IDIM2,CDIM2,IMPR,IRET)
  513. IF (IRET.NE.0) GOTO 9999
  514. NCOM=BLANC
  515. NCOM='IMET'
  516. NCOM(5:5)=CDIM1
  517. NCOM(6:6)=CDIM2
  518. NCOCOF=0
  519. SEGINI COCOUR
  520. COCOUR.NOMCOM=NCOM
  521. COCOUR.LTREF=.TRUE.
  522. SEGDES COCOUR
  523. MYCOMS.LISCOM(**)=COCOUR
  524. ENDDO
  525. ENDDO
  526. *
  527. * Loi de comportement X1 : première coordonnée des noeuds
  528. * Uniquement si mode AXI car sinon JPc non définie (cf. nlin.eso)
  529. *
  530. IF (IFOMOD.NE.-1) THEN
  531. NCOM=BLANC
  532. NCOM='X1'
  533. NCOCOF=0
  534. SEGINI COCOUR
  535. COCOUR.NOMCOM=NCOM
  536. COCOUR.LTREF=.TRUE.
  537. SEGDES COCOUR
  538. MYCOMS.LISCOM(**)=COCOUR
  539. ENDIF
  540. *
  541. * Impression finale
  542. *
  543. IF (IMPR.GT.1) THEN
  544. SEGPRT,MYCOMS
  545. NBCOMP=MYCOMS.LISCOM(/1)
  546. DO IBCOMP=1,NBCOMP
  547. COCOUR=MYCOMS.LISCOM(IBCOMP)
  548. SEGPRT,COCOUR
  549. ENDDO
  550. ENDIF
  551. SEGDES MYCOMS
  552. *
  553. * Normal termination
  554. *
  555. IRET=0
  556. RETURN
  557. *
  558. * Format handling
  559. *
  560. *
  561. * Error handling
  562. *
  563. 9999 CONTINUE
  564. IRET=1
  565. WRITE(IOIMP,*) 'An error was detected in subroutine incoms'
  566. RETURN
  567. *
  568. * End of subroutine INCOMS
  569. *
  570. END
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  

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