Télécharger incoms.eso

Retour à la liste

Numérotation des lignes :

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

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