Télécharger clim11.eso

Retour à la liste

Numérotation des lignes :

clim11
  1. C CLIM11 SOURCE OF166741 24/12/13 21:15:43 12097
  2. SUBROUTINE CLIM11(IJAC)
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : CLIM11
  8. C
  9. C DESCRIPTION : Subroutine appellée par CLIM1
  10. C
  11. C Modelisation 2D/3D des equations d'Euler
  12. C Calcul de conditions aux bords
  13. C Inlet; Riemann invariants
  14. C
  15. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16. C
  17. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF
  18. C
  19. C************************************************************************
  20. C
  21. C APPELES (Calcul) :
  22. C
  23. C************************************************************************
  24. C
  25. C
  26. C************************************************************************
  27. C
  28. C HISTORIQUE (Anomalies et modifications éventuelles)
  29. C
  30. C HISTORIQUE :
  31. C
  32. C************************************************************************
  33. C
  34. IMPLICIT INTEGER(I-N)
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC SMLMOTS
  39. -INC SMELEME
  40. -INC SMLENTI
  41. POINTEUR MLMVIT.MLMOTS
  42. C
  43. INTEGER IJAC, IJACO
  44. & ,IDOMA, IDBOR, IRET, MELEMC, MELEFE, MELEMF, ICHPVO, INORM
  45. & ,ICHPSU, MELECB, NBCOMP, INDIC, MELEFC, MELRES
  46. & ,JGN, JGM, NBELEM, NBNN, NBSOUS, NBREF, NGF, NLC
  47. & ,I1, ICEN, N1, ILIINP
  48. & ,ILIINC, IROC, IVITC, IPC, IGAMC, ICHLIM, NBOPT, ILIM
  49. & ,ICHRES, ICHRLI
  50. & ,NKID,NKMT,NMATRI,NRIGE,MMODEL,INEFMD
  51. PARAMETER (NBOPT=9)
  52. CHARACTER*8 LOPT(NBOPT)
  53. CHARACTER*4 MOT
  54. CHARACTER*8 TYPE
  55. C
  56. DATA LOPT/'INRI ','OUTRI ','INSS ','OUTSS ','OUTP ',
  57. & 'INSU ','INJE ','INJELM ','INSO '/
  58. C
  59. C*******************************
  60. C**** La table domaine *********
  61. C*******************************
  62. C
  63. CALL LIROBJ('MMODEL ',MMODEL,1,IRET)
  64. CALL ACTOBJ('MMODEL ',MMODEL,1)
  65. IF(IERR.NE.0)GOTO 9999
  66. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  67. C INEFMD inutilisé
  68. IF(IERR .NE. 0)GOTO 9999
  69. C
  70. CALL LEKTAB(IDOMA,'CENTRE',MELEMC)
  71. IF(IERR .NE. 0) GOTO 9999
  72. C
  73. CALL LEKTAB(IDOMA,'FACE',MELEMF)
  74. IF(IERR .NE. 0) GOTO 9999
  75. C
  76. C**** Lecture du CHPOINT contenant les volumes
  77. C
  78. CALL LEKTAB(IDOMA,'XXVOLUM',ICHPVO)
  79. IF(IERR .NE. 0) GOTO 9999
  80. INDIC = 1
  81. NBCOMP = 1
  82. MOT = 'SCAL'
  83. CALL QUEPOI(ICHPVO, MELEMC, INDIC, NBCOMP, MOT)
  84. IF(IERR .NE. 0) GOTO 9999
  85. C
  86. CALL LEKTAB(IDOMA,'XXSURFAC',ICHPSU)
  87. IF(IERR .NE. 0) GOTO 9999
  88. INDIC = 1
  89. NBCOMP = 1
  90. MOT = 'SCAL'
  91. CALL QUEPOI(ICHPSU, MELEMF, INDIC, NBCOMP, MOT)
  92. IF(IERR .NE. 0) GOTO 9999
  93. C
  94. C**** Les normales aux faces
  95. C
  96. IF(IDIM .EQ. 2)THEN
  97. C Que les normales
  98. CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
  99. IF(IERR .NE. 0) GOTO 9999
  100. JGN = 4
  101. JGM = 2
  102. SEGINI MLMVIT
  103. MLMVIT.MOTS(1) = 'UX '
  104. MLMVIT.MOTS(2) = 'UY '
  105. CALL QUEPO1(INORM, MELEMF, MLMVIT)
  106. SEGSUP MLMVIT
  107. IF(IERR .NE. 0) GOTO 9999
  108. ELSE
  109. C
  110. C**** Les normales ('MX ', ...)
  111. C Les tangentes ('RX ', ...)
  112. C
  113. TYPE = ' '
  114. CALL ACMO(IDOMA,'MATROT',TYPE,INORM)
  115. IF (TYPE .NE. 'CHPOINT ') THEN
  116. CALL MATRAN(IDOMA,INORM)
  117. IF(IERR .NE. 0) GOTO 9999
  118. ENDIF
  119. JGN = 4
  120. JGM = 9
  121. SEGINI MLMVIT
  122. MLMVIT.MOTS(1) = 'MX '
  123. MLMVIT.MOTS(2) = 'MY '
  124. MLMVIT.MOTS(3) = 'MZ '
  125. MLMVIT.MOTS(4) = 'RX '
  126. MLMVIT.MOTS(5) = 'RY '
  127. MLMVIT.MOTS(6) = 'RZ '
  128. MLMVIT.MOTS(7) = 'UX '
  129. MLMVIT.MOTS(8) = 'UY '
  130. MLMVIT.MOTS(9) = 'UZ '
  131. CALL QUEPO1(INORM, MELEMF, MLMVIT)
  132. SEGSUP MLMVIT
  133. ENDIF
  134. C
  135. C**********************************
  136. C**** La table domaine du bord ****
  137. C**********************************
  138. C
  139. CALL LIROBJ('MMODEL ',MMODEL,1,IRET)
  140. CALL ACTOBJ('MMODEL ',MMODEL,1)
  141. IF(IERR.NE.0)GOTO 9999
  142. CALL LEKMOD(MMODEL,IDBOR,INEFMD)
  143. C INEFMD inutilisé
  144. IF(IERR .NE. 0)GOTO 9999
  145. C
  146. CALL LEKTAB(IDBOR,'CENTRE',MELECB)
  147. IF(IERR .NE. 0) GOTO 9999
  148. C
  149. TYPE = ' '
  150. CALL ACMO(IDBOR,'FACCEN',TYPE,MELEFC)
  151. IF (TYPE.NE.'MAILLAGE') THEN
  152. C
  153. CALL LEKTAB(IDOMA,'FACEL',MELEFE)
  154. IF(IERR .NE. 0) GOTO 9999
  155. C
  156. C******* On cree la connectivité face-centre
  157. C
  158. IPT1=MELECB
  159. IPT2=MELEFE
  160. SEGACT IPT1
  161. SEGACT IPT2
  162. CALL KRIPAD(IPT1,MLENTI)
  163. C SEGINI MLENTI
  164. NBELEM=IPT1.NUM(/2)
  165. NBNN=2
  166. NBSOUS=0
  167. NBREF=0
  168. SEGINI IPT3
  169. IPT3.ITYPEL=2
  170. N1=IPT2.NUM(/2)
  171. ICEN=0
  172. DO I1=1,N1,1
  173. NGF=IPT2.NUM(2,I1)
  174. NLC=MLENTI.LECT(NGF)
  175. IF(NLC.NE.0)THEN
  176. ICEN=ICEN+1
  177. IPT3.NUM(1,ICEN)=NGF
  178. IPT3.NUM(2,ICEN)=IPT2.NUM(1,I1)
  179. IF(IPT2.NUM(1,I1) .NE. IPT2.NUM(3,I1))THEN
  180. C Interior point
  181. C Donné incompatible
  182. WRITE(IOIMP,*) 'Internal boundary condition!!!'
  183. CALL ERREUR(21)
  184. ENDIF
  185. ENDIF
  186. ENDDO
  187. C
  188. IF(ICEN .NE. NBELEM)THEN
  189. CALL ERREUR(5)
  190. ENDIF
  191. SEGDES IPT1
  192. SEGDES IPT2
  193. SEGDES IPT3
  194. SEGSUP MLENTI
  195. C
  196. MELEFC=IPT3
  197. CALL ECMO(IDBOR,'FACCEN','MAILLAGE',IPT3)
  198. ENDIF
  199. C
  200. C**** Le SPG du residu
  201. C
  202. IPT1=MELEFC
  203. SEGACT IPT1
  204. NBELEM=IPT1.NUM(/2)
  205. NBNN=1
  206. NBSOUS=0
  207. NBREF=0
  208. SEGINI IPT2
  209. IPT2.ITYPEL=1
  210. DO I1=1,NBELEM,1
  211. IPT2.NUM(1,I1)=IPT1.NUM(2,I1)
  212. ENDDO
  213. MELRES=IPT2
  214. SEGDES IPT1
  215. SEGDES IPT2
  216. C
  217. C**** Noms de variables conservatives
  218. C
  219. TYPE='LISTMOTS'
  220. CALL LIROBJ(TYPE,ILIINC,1,IRET)
  221. IF(IERR .NE. 0) GOTO 9999
  222. MLMOTS = ILIINC
  223. SEGACT MLMOTS
  224. NBCOMP = MLMOTS.MOTS(/2)
  225. SEGDES MLMOTS
  226. IF(NBCOMP .NE. (IDIM+2))THEN
  227. MOTERR(1:40) = 'LISTINCO = ???'
  228. WRITE(IOIMP,*) MOTERR
  229. C
  230. C******* Message d'erreur standard
  231. C 21 2
  232. C Données incompatibles
  233. C
  234. CALL ERREUR(21)
  235. GOTO 9999
  236. ENDIF
  237. C
  238. C**** Noms de variables primitives
  239. C
  240. TYPE='LISTMOTS'
  241. CALL LIROBJ(TYPE,ILIINP,1,IRET)
  242. IF(IERR .NE. 0) GOTO 9999
  243. MLMOTS = ILIINP
  244. SEGACT MLMOTS
  245. NBCOMP = MLMOTS.MOTS(/2)
  246. SEGDES MLMOTS
  247. IF(NBCOMP .NE. (IDIM+2))THEN
  248. MOTERR(1:40) = 'LISTPRIM = ???'
  249. WRITE(IOIMP,*) MOTERR
  250. C
  251. C******* Message d'erreur standard
  252. C 21 2
  253. C Données incompatibles
  254. C
  255. CALL ERREUR(21)
  256. GOTO 9999
  257. ENDIF
  258. C
  259. C**** Lecture du CHPOINT RN
  260. C
  261. TYPE='CHPOINT '
  262. CALL LIROBJ(TYPE,IROC,1,IRET)
  263. CALL ACTOBJ(TYPE,IROC,1)
  264. IF (IERR.NE.0) GOTO 9999
  265. C
  266. C**** Control du CHPOINT: QUEPOI
  267. C
  268. C INDIC = 1 -> on impose le pointeur du support geometrique
  269. C NBCOMP > 0 -> nombre des composantes
  270. C
  271. INDIC = 1
  272. NBCOMP = 1
  273. MOT = 'SCAL'
  274. CALL QUEPOI(IROC, MELEMC, INDIC, NBCOMP, MOT)
  275. IF(IERR .NE. 0)GOTO 9999
  276. C
  277. C**** Lecture du CHPOINT VITC
  278. C
  279. CALL LIROBJ('CHPOINT ',IVITC,1,IRET)
  280. CALL ACTOBJ('CHPOINT ',IVITC,1)
  281. IF (IERR.NE.0) GOTO 9999
  282. C
  283. C**** Control du CHPOINT
  284. C
  285. JGN = 4
  286. JGM = IDIM
  287. SEGINI MLMVIT
  288. MLMVIT.MOTS(1) = 'UX '
  289. MLMVIT.MOTS(2) = 'UY '
  290. IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ '
  291. CALL QUEPO1(IVITC, MELEMC, MLMVIT)
  292. SEGSUP MLMVIT
  293. IF(IERR .NE. 0)GOTO 9999
  294. C
  295. C**** Lecture du CHPOINT PC
  296. C
  297. CALL LIROBJ('CHPOINT ',IPC,1,IRET)
  298. CALL ACTOBJ('CHPOINT ',IPC,1)
  299. IF (IERR.NE.0) GOTO 9999
  300. C
  301. C**** Control du CHPOINT
  302. C
  303. INDIC = 1
  304. NBCOMP = 1
  305. MOT = 'SCAL'
  306. CALL QUEPOI(IPC, MELEMC, INDIC, NBCOMP, MOT)
  307. IF(IERR .NE. 0)GOTO 9999
  308. C
  309. C**** Lecture du CHPOINT GAMC
  310. C
  311. CALL LIROBJ('CHPOINT ',IGAMC,1,IRET)
  312. CALL ACTOBJ('CHPOINT ',IGAMC,1)
  313. IF (IERR.NE.0) GOTO 9999
  314. C
  315. C**** Control du CHPOINT
  316. C
  317. INDIC = 1
  318. NBCOMP = 1
  319. MOT = 'SCAL'
  320. CALL QUEPOI(IGAMC, MELEMC, INDIC, NBCOMP, MOT)
  321. IF(IERR .NE. 0)GOTO 9999
  322. C
  323. C**** CHPOINT condition limite
  324. C
  325. CALL LIROBJ('CHPOINT',ICHLIM,1,IRET)
  326. CALL ACTOBJ('CHPOINT',ICHLIM,1)
  327. IF (IERR.NE.0) GOTO 9999
  328. C
  329. C**** Resultats
  330. C
  331. IF(IJAC .EQ.0)THEN
  332. TYPE=' '
  333. CALL KRCHP1(TYPE,MELRES,ICHRES,ILIINC)
  334. C
  335. TYPE=' '
  336. CALL KRCHP1(TYPE,MELECB,ICHRLI,ILIINP)
  337. ELSE
  338. ICHRES=0
  339. ICHRLI=0
  340. ENDIF
  341. C
  342. C**** TYPE DE CONDITION LIMITE
  343. C
  344. CALL LIRMOT(LOPT,NBOPT,ILIM,1)
  345. IF(IERR .NE. 0) GOTO 9999
  346. IF(ILIM .EQ. 1)THEN
  347. C
  348. C******** 'INRI '
  349. C
  350. JGN = 4
  351. JGM = IDIM+2
  352. SEGINI MLMVIT
  353. MLMVIT.MOTS(1) = 'RN '
  354. MLMVIT.MOTS(2) = 'UX '
  355. MLMVIT.MOTS(3) = 'UY '
  356. IF(IDIM .EQ. 3) MLMVIT.MOTS(4) = 'UZ '
  357. MLMVIT.MOTS(2+IDIM)='PN '
  358. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  359. SEGSUP MLMVIT
  360. IF (IERR.NE.0) GOTO 9999
  361. C
  362. IF(IJAC.EQ.0)THEN
  363. CALL CLI111(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  364. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  365. IF(IERR.NE.0)GOTO 9999
  366. ELSE
  367. IF(IDIM.EQ.2)THEN
  368. CALL CLI112(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  369. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  370. $ ,ILIINP,IJAC,IJACO)
  371. ELSE
  372. CALL CLI113(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  373. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  374. $ ,ILIINP,IJAC,IJACO)
  375. ENDIF
  376. IF(IERR.NE.0)GOTO 9999
  377. ENDIF
  378. ELSEIF(ILIM .EQ. 2)THEN
  379. C
  380. C******** 'OUTRI '
  381. C
  382. JGN = 4
  383. JGM = IDIM+2
  384. SEGINI MLMVIT
  385. MLMVIT.MOTS(1) = 'RN '
  386. MLMVIT.MOTS(2) = 'UX '
  387. MLMVIT.MOTS(3) = 'UY '
  388. IF(IDIM .EQ. 3) MLMVIT.MOTS(4) = 'UZ '
  389. MLMVIT.MOTS(2+IDIM)='PN '
  390. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  391. SEGSUP MLMVIT
  392. IF (IERR.NE.0) GOTO 9999
  393. C
  394. IF(IJAC.EQ.0)THEN
  395. CALL CLI121(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  396. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  397. IF(IERR.NE.0)GOTO 9999
  398. ELSE
  399. IF(IDIM.EQ.2)THEN
  400. CALL CLI122(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  401. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  402. $ ,ILIINP,IJAC,IJACO)
  403. ELSE
  404. CALL CLI123(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  405. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  406. $ ,ILIINP,IJAC,IJACO)
  407. ENDIF
  408. IF(IERR.NE.0)GOTO 9999
  409. ENDIF
  410. ELSEIF(ILIM .EQ. 3)THEN
  411. C
  412. C******** 'INSS '
  413. C
  414. JGN = 4
  415. JGM = IDIM+2
  416. SEGINI MLMVIT
  417. MLMVIT.MOTS(1) = 'RN '
  418. MLMVIT.MOTS(2) = 'UX '
  419. MLMVIT.MOTS(3) = 'UY '
  420. IF(IDIM .EQ. 3) MLMVIT.MOTS(4) = 'UZ '
  421. MLMVIT.MOTS(2+IDIM)='PN '
  422. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  423. SEGSUP MLMVIT
  424. IF (IERR.NE.0) GOTO 9999
  425. C
  426. IF(IJAC.EQ.0)THEN
  427. CALL CLI131(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  428. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  429. IF(IERR.NE.0)GOTO 9999
  430. ELSE
  431. * Le Jacobien est une matrik vide
  432. NRIGE=7
  433. NMATRI=0
  434. NKID =9
  435. NKMT =7
  436. SEGINI MATRIK
  437. SEGDES MATRIK
  438. IJACO=MATRIK
  439. ENDIF
  440. ELSEIF(ILIM .EQ. 4)THEN
  441. C
  442. C******** 'OUTSS '
  443. C
  444. C ICHLIM est un CHPOINT vide
  445. C Mais on fait pas de controlle
  446. C
  447. IF(IJAC.EQ.0)THEN
  448. CALL CLI141(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  449. & IROC,IVITC,IPC,IGAMC,ICHRES,ICHRLI)
  450. IF(IERR.NE.0)GOTO 9999
  451. ELSE
  452. IF(IDIM.EQ.2)THEN
  453. CALL CLI142(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  454. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ILIINC
  455. $ ,ILIINP,IJAC,IJACO)
  456. ELSE
  457. CALL CLI143(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  458. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ILIINC
  459. $ ,ILIINP,IJAC,IJACO)
  460. ENDIF
  461. IF(IERR.NE.0)GOTO 9999
  462. ENDIF
  463. ELSEIF(ILIM .EQ. 5)THEN
  464. C
  465. C******** 'OUTP '
  466. C
  467. JGN = 4
  468. JGM = 1
  469. SEGINI MLMVIT
  470. MLMVIT.MOTS(1)='PN '
  471. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  472. SEGSUP MLMVIT
  473. IF (IERR.NE.0) GOTO 9999
  474. C
  475. IF(IJAC.EQ.0)THEN
  476. CALL CLI151(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  477. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  478. IF(IERR.NE.0)GOTO 9999
  479. ELSE
  480. IF(IDIM.EQ.2)THEN
  481. CALL CLI152(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  482. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  483. $ ,ILIINP,IJAC,IJACO)
  484. ELSE
  485. CALL CLI153(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  486. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  487. $ ,ILIINP,IJAC,IJACO)
  488. ENDIF
  489. ENDIF
  490. ELSEIF(ILIM .EQ. 6)THEN
  491. C
  492. C******** 'INSU '
  493. C
  494. JGN = 4
  495. JGM = 2
  496. SEGINI MLMVIT
  497. MLMVIT.MOTS(1) = 'HT '
  498. MLMVIT.MOTS(2) = 'S '
  499. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  500. SEGSUP MLMVIT
  501. IF (IERR.NE.0) GOTO 9999
  502. C
  503. IF(IJAC.EQ.0)THEN
  504. CALL CLI161(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  505. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  506. IF(IERR.NE.0)GOTO 9999
  507. ELSE
  508. IF(IDIM.EQ.2)THEN
  509. CALL CLI162(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  510. & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  511. & ,ILIINP,IJAC,IJACO)
  512. ELSE
  513. CALL CLI163(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  514. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  515. $ ,ILIINP,IJAC,IJACO)
  516. ENDIF
  517. ENDIF
  518. ELSEIF(ILIM .EQ. 7)THEN
  519. C
  520. C******** 'INJE '
  521. C
  522. JGN = 4
  523. JGM = 2
  524. SEGINI MLMVIT
  525. MLMVIT.MOTS(1) = 'MOME'
  526. MLMVIT.MOTS(2) = 'RT '
  527. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  528. SEGSUP MLMVIT
  529. IF (IERR.NE.0) GOTO 9999
  530. C
  531. IF(IJAC.EQ.0)THEN
  532. CALL CLI181(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  533. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  534. IF(IERR.NE.0)GOTO 9999
  535. ELSE
  536. IF(IDIM.EQ.2)THEN
  537. CALL CLI182(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  538. & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  539. & ,ILIINP,IJAC,IJACO)
  540. ELSE
  541. CALL CLI183(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  542. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  543. $ ,ILIINP,IJAC,IJACO)
  544. ENDIF
  545. ENDIF
  546. ELSEIF(ILIM .EQ. 8)THEN
  547. C
  548. C******** 'INJELM '
  549. C
  550. JGN = 4
  551. JGM = 2
  552. SEGINI MLMVIT
  553. MLMVIT.MOTS(1) = 'MOME'
  554. MLMVIT.MOTS(2) = 'RT '
  555. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  556. SEGSUP MLMVIT
  557. IF (IERR.NE.0) GOTO 9999
  558. C
  559. IF(IJAC.EQ.0)THEN
  560. CALL CLI171(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  561. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  562. IF(IERR.NE.0)GOTO 9999
  563. ELSE
  564. IF(IDIM.EQ.2)THEN
  565. CALL CLI172(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  566. & ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  567. & ,ILIINP,IJAC,IJACO)
  568. ELSE
  569. CALL CLI173(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM
  570. $ ,ICHPVO,ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC
  571. $ ,ILIINP,IJAC,IJACO)
  572. ENDIF
  573. ENDIF
  574. ELSEIF(ILIM .EQ. 9)THEN
  575. C
  576. C******** 'INSO '
  577. C
  578. JGN = 4
  579. JGM = 2
  580. SEGINI MLMVIT
  581. MLMVIT.MOTS(1) = 'PSTA'
  582. MLMVIT.MOTS(2) = 'RSTA'
  583. CALL QUEPO1(ICHLIM, MELECB, MLMVIT)
  584. SEGSUP MLMVIT
  585. IF (IERR.NE.0) GOTO 9999
  586. C
  587. IF(IJAC.EQ.0)THEN
  588. CALL CLI191(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  589. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  590. IF(IERR.NE.0)GOTO 9999
  591. ENDIF
  592. ENDIF
  593. C
  594. IF(IJAC.EQ.0)THEN
  595. CALL ACTOBJ('CHPOINT ',ICHRES,1)
  596. CALL ACTOBJ('CHPOINT ',ICHRLI,1)
  597.  
  598. CALL ECROBJ('CHPOINT ',ICHRES)
  599. CALL ECROBJ('CHPOINT ',ICHRLI)
  600. ELSE
  601. CALL ECROBJ('MATRIK ',IJACO)
  602. ENDIF
  603. C
  604. 9999 CONTINUE
  605. END
  606.  
  607.  
  608.  
  609.  
  610.  

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