Télécharger incoms.eso

Retour à la liste

Numérotation des lignes :

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

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