Télécharger kon19.eso

Retour à la liste

Numérotation des lignes :

  1. C KON19 SOURCE KK2000 14/04/10 21:15:16 8032
  2. SUBROUTINE KON19
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : KON19
  8. C
  9. C DESCRIPTION : Subroutine appellée par KON2
  10. C
  11. C Modelisation 2D/3D des equations d'Euler
  12. C MULTIESPECES!!!!!!!!!!!!!!!
  13. C
  14. C Calcul du jacobien
  15. C
  16. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  17. C
  18. C AUTEUR : S. KUDRIAKOV, DRN/DMT/SEMT/LTMF
  19. C
  20. C*********************************************************************
  21. C
  22. C APPELES (Calcul) : KONMSP (calcul du jacobien, gaz "calorically
  23. C perfect",multiespeces, 2D, AUSM+)
  24. C : KONMS3 (calcul du jacobien, gaz "calorically
  25. C perfect",multiespeces, 3D, AUSM+)
  26. C*********************************************************************
  27. C
  28. C*** SYNTAXE
  29. C
  30. C Discrétisation en VF "cell-centered" des équations d'Euler pour
  31. C un gaz parfait mono-constituent polytropique
  32. C Inconnues: densité, quantité de mouvement, énergie totale par
  33. C unité de volumes (variables conservatives)
  34. C
  35. C RMAT1 = 'KONV' 'VF' 'PERFMULT' 'JACOCONV' MOT3 TABD TABP LMOT1
  36. C (MAILIM) CHPO1 CHPO2 CHPO3 CHPO4 ;
  37. C-----------------------
  38. C ENTREES
  39. C-----------------------
  40. C MOT3 : objet de type MOT
  41. C 'AUSMPLUS' : jacobien du residu pour la methode AUSM+
  42. C
  43. C TABD : la table domaine
  44. C
  45. C TABP : TABLE qui contient :
  46. C * les noms des especes qui apparessent
  47. C explicitement dans les equations d'Euler en
  48. C TABP . 'ESPEULE' (list de mots);
  49. C * le nom de l'espece qui n'y est pas (mots);
  50. C * les CP et les CV du gas en
  51. C TABP . 'CP' (table)
  52. C TABP . 'CV' (table)
  53. C
  54. C LMOT1 : objet de type LISTMOTS
  55. C Noms de composantes des variable primales et duales de RMAT1.
  56. C Il contient dans l'ordre suivant: le noms de la densité,
  57. C du momentum, de l'énergie totale et les fraction massiques
  58. C par unité de volume
  59. C
  60. C MAILIM : MAIILAGE de POI1 ou on ne veut pas calculer le FLUX
  61. C convective
  62. C
  63. C CHPO1 : CHPOINT contenant la masse volumique
  64. C (SPG = TAB1 . 'CENTRE', une seule composante,
  65. C 'SCAL').
  66. C
  67. C CHPO2 : CHPOINT contenant la vitesse
  68. C (SPG = TAB1 . 'CENTRE', deux/trois composantes
  69. C 'UX', 'UY', 'UZ')
  70. C
  71. C CHPO3 : CHPOINT contenant la pression du gaz
  72. C (SPG = TAB1 . 'CENTRE', une seule composante,
  73. C 'SCAL').
  74. C
  75. C CHPO4 : CHPOINT contenant les fraction massiques
  76. C des differentes especes
  77. C (SPG = TAB1 . 'CENTRE', nombre des composantes = NESP-1).
  78. C
  79. C---------------------
  80. C SORTIES
  81. C---------------------
  82. C RMAT1 : objet de type MATRIK
  83. C (SPG = TAB1 . 'CENTRE')
  84. C (inconnues primales = inconnues duales = LMOT1)
  85. C
  86. C************************************************************************
  87. C
  88. C HISTORIQUE (Anomalies et modifications éventuelles)
  89. C
  90. C HISTORIQUE :
  91. C
  92. C************************************************************************
  93. C
  94. IMPLICIT INTEGER(I-N)
  95. IMPLICIT REAL*8(A-H,O-Z)
  96.  
  97. -INC CCOPTIO
  98. -INC SMLMOTS
  99. -INC SMCHPOI
  100. -INC SMELEME
  101.  
  102. POINTEUR MLMVIT.MLMOTS
  103. C
  104. INTEGER NBJAC, IRET, INDIC, NBCOMP, NESP, JGN, JGM
  105. & ,IDOMA, MELEMC, MELEMF, MELEFE, MELTFA, ICHPSU, ICHPDI
  106. & ,ICHPVO, INORM, ICP, MMODEL
  107. & ,IJACO, ILIINC, NC, IFLIM, MELLIM, ICACCA
  108. & ,IIMPL, IRN, IVN, IPN, IYN, IUINF, IUPRI
  109. & ,I1, JG, ICOND, IRETOU, ICV, INEFMD, IPGAS
  110. C
  111. PARAMETER (NBJAC=2)
  112. CHARACTER*8 TYPE, LJACO(NBJAC), MTYPR
  113. CHARACTER*4 MOT
  114. CHARACTER*(4) MOT1(3), CELLCH
  115. CHARACTER*(40) MESERR
  116. REAL*8 CP, CV
  117. C----------------------------------------------------
  118. C************ Variables en ACCTAB ******************
  119. C----------------------------------------------------
  120. INTEGER IVALI, IRETI,IVALR, IRETR
  121. REAL*8 XVALI,XVALR
  122. LOGICAL LOGII, LOGIR
  123. CHARACTER*(8) CHARR,MTYPI
  124. DATA LJACO/'AUSMPLUS','AUSMPLM '/
  125. cC----------------------------------------------------
  126. cC************ Variables en ACCTAB ******************
  127. cC----------------------------------------------------
  128. c INTEGER IVALI, IRETI,IVALR, IRETR
  129. c REAL*8 XVALI,XVALR
  130. c LOGICAL LOGII, LOGIR
  131. c CHARACTER*(8) CHARR,MTYPI
  132. C----------------------------------------------------
  133. -INC SMLREEL
  134. POINTEUR MLRECP.MLREEL, MLRECV.MLREEL
  135. C-----------------------------------------
  136. C Initialisation des variables en ACCTAB
  137. C-----------------------------------------
  138. IVALI = 0
  139. IVALR = 0
  140. XVALI = 0.0D0
  141. XVALR = 0.0D0
  142. LOGII = .FALSE.
  143. LOGIR = .FALSE.
  144. IRETI = 0
  145. IRETR = 0
  146. CHARR = ' '
  147. C-----------------------------
  148. C**** Type of Jacobian
  149. C-----------------------------
  150. CALL LIRMOT(LJACO,NBJAC,IIMPL,1)
  151. IF(IERR .NE. 0)GOTO 9999
  152. C*******************************
  153. C**** La table domaine *********
  154. C*******************************
  155. ICOND = 1
  156. CALL QUETYP(TYPE,ICOND,IRET)
  157. C
  158. IF(IRET.EQ.0.AND.TYPE.NE.'MMODEL')THEN
  159. WRITE(IOIMP,*)' On attend un objet MMODEL'
  160. GOTO 9999
  161. ENDIF
  162. CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET)
  163. IF(IERR.NE.0)GOTO 9999
  164. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  165. C INEFMD inutilisé
  166. IF(IERR.NE.0)GOTO 9999
  167. C--------------------------------
  168. C**** Centre, FACE, FACEL, ELTFA
  169. C--------------------------------
  170. CALL LEKTAB(IDOMA,'CENTRE',MELEMC)
  171. IF(IERR .NE. 0) GOTO 9999
  172. C
  173. CALL LEKTAB(IDOMA,'FACE',MELEMF)
  174. IF(IERR .NE. 0) GOTO 9999
  175. C
  176. CALL LEKTAB(IDOMA,'FACEL',MELEFE)
  177. IF(IERR .NE. 0) GOTO 9999
  178. C
  179. CALL LEKTAB(IDOMA,'ELTFA',MELTFA)
  180. IF(IERR .NE. 0) GOTO 9999
  181. C---------------------------------------------------------
  182. C**** Lecture du CHPOINT contenant les surfaces des faces.
  183. C---------------------------------------------------------
  184. CALL LEKTAB(IDOMA,'XXSURFAC',ICHPSU)
  185. IF(IERR .NE. 0) GOTO 9999
  186. INDIC = 1
  187. NBCOMP = 1
  188. MOT = 'SCAL'
  189. CALL QUEPOI(ICHPSU, MELEMF, INDIC, NBCOMP, MOT)
  190. IF(IERR .NE. 0) GOTO 9999
  191. C---------------------------------------------------------
  192. C**** Lecture du CHPOINT contenant les diametres minimums.
  193. C---------------------------------------------------------
  194. CALL LEKTAB(IDOMA,'XXDIEMIN',ICHPDI)
  195. IF(IERR .NE. 0) GOTO 9999
  196. INDIC = 1
  197. NBCOMP = 1
  198. MOT = 'SCAL'
  199. CALL QUEPOI(ICHPDI, MELEMC, INDIC, NBCOMP, MOT)
  200. IF(IERR .NE. 0) GOTO 9999
  201. C----------------------------------------------
  202. C**** Lecture du CHPOINT contenant les volumes
  203. C----------------------------------------------
  204. CALL LEKTAB(IDOMA,'XXVOLUM',ICHPVO)
  205. IF(IERR .NE. 0) GOTO 9999
  206. INDIC = 1
  207. NBCOMP = 1
  208. MOT = 'SCAL'
  209. CALL QUEPOI(ICHPVO, MELEMC, INDIC, NBCOMP, MOT)
  210. IF(IERR .NE. 0) GOTO 9999
  211. C----------------------------
  212. C**** Les normales aux faces
  213. C----------------------------
  214. IF(IDIM .EQ. 2)THEN
  215. C Que les normales
  216. CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
  217. IF(IERR .NE. 0) GOTO 9999
  218. JGN = 4
  219. JGM = 2
  220. SEGINI MLMVIT
  221. MLMVIT.MOTS(1) = 'UX '
  222. MLMVIT.MOTS(2) = 'UY '
  223. CALL QUEPO1(INORM, MELEMF, MLMVIT)
  224. SEGSUP MLMVIT
  225. IF(IERR .NE. 0) GOTO 9999
  226. ELSE
  227. C Les normales et les tangentes
  228. TYPE = ' '
  229. CALL ACMO(IDOMA,'MATROT',TYPE,INORM)
  230. IF (TYPE .NE. 'CHPOINT ') THEN
  231. CALL MATRAN(IDOMA,INORM)
  232. IF(IERR .NE. 0) GOTO 9999
  233. ENDIF
  234. JGN = 4
  235. JGM = 9
  236. SEGINI MLMVIT
  237. MLMVIT.MOTS(1) = 'UX '
  238. MLMVIT.MOTS(2) = 'UY '
  239. MLMVIT.MOTS(3) = 'UZ '
  240. MLMVIT.MOTS(4) = 'RX '
  241. MLMVIT.MOTS(5) = 'RY '
  242. MLMVIT.MOTS(6) = 'RZ '
  243. MLMVIT.MOTS(7) = 'MX '
  244. MLMVIT.MOTS(8) = 'MY '
  245. MLMVIT.MOTS(9) = 'MZ '
  246. CALL QUEPO1(INORM, MELEMF, MLMVIT)
  247. SEGSUP MLMVIT
  248. ENDIF
  249. C********************************
  250. C**** Fin table domaine *********
  251. C********************************
  252. ICOND = 1
  253. CALL QUETYP(MTYPR,ICOND,IRETOU)
  254. IF(IERR .NE. 0)GOTO 9999
  255. IF(MTYPR .NE. 'TABLE ')THEN
  256. C---------------------------------------
  257. C Message d'erreur standard
  258. C 37 2
  259. C On ne trouve pas d'objet de type %m1:8
  260. C---------------------------------------
  261. MOTERR(1:8) = 'TABLE '
  262. CALL ERREUR(37)
  263. GOTO 9999
  264. ELSE
  265. ICOND = 1
  266. CALL LIROBJ(MTYPR,IPGAS,ICOND,IRETOU)
  267. IF(IERR .NE. 0)GOTO 9999
  268. ENDIF
  269. C-------------------------------------------
  270. C******** Reading the CPs *****************
  271. C-------------------------------------------
  272. MTYPR = ' '
  273. CALL ACMO(IPGAS,'CP',MTYPR,ICP)
  274. IF(MTYPR .NE. 'TABLE ')THEN
  275. C--------------------------------
  276. C Message d'erreur standard
  277. C -301 0 %m1:40
  278. C--------------------------------
  279. MOTERR(1:40) = 'TAB1 . CP = ??? '
  280. WRITE(IOIMP,*) MOTERR(1:40)
  281. C---------------------------------
  282. C Message d'erreur standard
  283. C 21 2
  284. C Données incompatibles
  285. C--------------------------------
  286. CALL ERREUR(21)
  287. GOTO 9999
  288. ENDIF
  289. C-------------------------------------------
  290. C******** Reading the CVs *****************
  291. C-------------------------------------------
  292. MTYPR = ' '
  293. CALL ACMO(IPGAS,'CV',MTYPR,ICV)
  294. IF(MTYPR .NE. 'TABLE ')THEN
  295. C--------------------------------
  296. C Message d'erreur standard
  297. C -301 0 %m1:40
  298. C--------------------------------
  299. MOTERR(1:40) = 'TAB1 . CV = ??? '
  300. WRITE(IOIMP,*) MOTERR(1:40)
  301. C---------------------------------
  302. C Message d'erreur standard
  303. C 21 2
  304. C Données incompatibles
  305. C--------------------------------
  306. CALL ERREUR(21)
  307. GOTO 9999
  308. ENDIF
  309. C---------------------------------------------------------
  310. C Reading Les especes qui sont dans les Equations d'Euler
  311. C---------------------------------------------------------
  312. MTYPR = ' '
  313. CALL ACMO(IPGAS,'ESPEULE',MTYPR,MLMOT1)
  314. IF(MTYPR .NE. 'LISTMOTS')THEN
  315. C---------------------------
  316. C Message d'erreur standard
  317. C -301 0 %m1:40
  318. C---------------------------
  319. MOTERR(1:40) = 'TAB1 . ESPEULE = ??? '
  320. WRITE(IOIMP,*) MOTERR(1:40)
  321. C---------------------------
  322. C Message d'erreur standard
  323. C 21 2
  324. C Données incompatibles
  325. C--------------------------
  326. CALL ERREUR(21)
  327. GOTO 9999
  328. ENDIF
  329. C-----------------------------------------------------------------
  330. C Reading Nom de l'espece qui n'est pas dans les equations d'Euler
  331. C-----------------------------------------------------------------
  332. MTYPI = 'MOT '
  333. MTYPR = ' '
  334. CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'ESPNEULE', LOGII,IRETI,
  335. & MTYPR,IVALR,XVALR ,CELLCH,LOGIR,IRETR)
  336. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'MOT ')) THEN
  337. C-------------------------------
  338. C Message d'erreur standard
  339. C -301 0 %m1:40
  340. C-------------------------------
  341. MOTERR = 'TAB1 . ESPNEULE = ??? '
  342. WRITE(IOIMP,*) MOTERR(1:40)
  343. C------------------------------
  344. C Message d'erreur standard
  345. C 21 2
  346. C Données incompatibles
  347. C------------------------------
  348. CALL ERREUR(21)
  349. GOTO 9999
  350. ENDIF
  351. C--------------------------------------------------------------
  352. C Creating the lists of real numbers of CP and CV
  353. C--------------------------------------------------------------
  354. SEGACT MLMOT1
  355. NESP = MLMOT1.MOTS(/2)
  356. C----------------------
  357. C** List de CP et CV **
  358. C----------------------
  359. JG = NESP+1
  360. SEGINI MLRECP
  361. SEGINI MLRECV
  362. DO I1 = 1, NESP
  363. C-------------------------------
  364. C N.B. MOT1 est un CHARACTER*(4)
  365. C-------------------------------
  366. MOT1(1) = MLMOT1.MOTS(I1)
  367. MTYPI = 'MOT '
  368. MTYPR = ' '
  369. CALL ACCTAB(ICP,MTYPI,IVALI,XVALI,MOT1(1), LOGII,IRETI,
  370. & MTYPR,IVALR,CP ,CHARR,LOGIR,IRETR)
  371. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  372. C------------------------------
  373. C Message d'erreur standard
  374. C -301 0 %m1:40
  375. C------------------------------
  376. MOTERR = 'TAB1 . CP , TAB1 . ESPEULE = ??? '
  377. WRITE(IOIMP,*) MOTERR(1:40)
  378. C------------------------------
  379. C Message d'erreur standard
  380. C 21 2
  381. C Données incompatibles
  382. C------------------------------
  383. CALL ERREUR(21)
  384. GOTO 9999
  385. ENDIF
  386. MLRECP.PROG(I1) = CP
  387. C-------------------------------------------
  388. CALL ACCTAB(ICV,MTYPI,IVALI,XVALI,MOT1(1), LOGII,IRETI,
  389. & MTYPR,IVALR,CV ,CHARR,LOGIR,IRETR)
  390. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  391. C---------------------------
  392. C Message d'erreur standard
  393. C -301 0 %m1:40
  394. C---------------------------
  395. MOTERR = 'TAB1 . CV , TAB1 . ESPEULE = ??? '
  396. WRITE(IOIMP,*) MOTERR(1:40)
  397. C---------------------------
  398. C Message d'erreur standard
  399. C 21 2
  400. C Données incompatibles
  401. C---------------------------
  402. CALL ERREUR(21)
  403. GOTO 9999
  404. ENDIF
  405. MLRECV.PROG(I1) = CV
  406. ENDDO
  407. MTYPI = 'MOT '
  408. MTYPR = ' '
  409. CALL ACCTAB(ICP,MTYPI,IVALI,XVALI,CELLCH, LOGII,IRETI,
  410. & MTYPR,IVALR,CP ,CHARR,LOGIR,IRETR)
  411. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  412. C---------------------------
  413. C Message d'erreur standard
  414. C -301 0 %m1:40
  415. C---------------------------
  416. MOTERR = 'TAB1 . CP , TAB1 . ESPNEULE = ??? '
  417. WRITE(IOIMP,*) MOTERR(1:40)
  418. C---------------------------
  419. C Message d'erreur standard
  420. C 21 2
  421. C Données incompatibles
  422. C---------------------------
  423. CALL ERREUR(21)
  424. GOTO 9999
  425. ENDIF
  426. MLRECP.PROG(JG) = CP
  427. C
  428. MTYPI = 'MOT '
  429. MTYPR = ' '
  430. CALL ACCTAB(ICV,MTYPI,IVALI,XVALI,CELLCH, LOGII,IRETI,
  431. & MTYPR,IVALR,CV ,CHARR,LOGIR,IRETR)
  432. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  433. C----------------------------
  434. C Message d'erreur standard
  435. C -301 0 %m1:40
  436. C----------------------------
  437. MOTERR = 'TAB1 . CV , TAB1 . ESPNEULE = ??? '
  438. WRITE(IOIMP,*) MOTERR(1:40)
  439. C----------------------------
  440. C Message d'erreur standard
  441. C 21 2
  442. C Données incompatibles
  443. C----------------------------
  444. CALL ERREUR(21)
  445. GOTO 9999
  446. ENDIF
  447. MLRECV.PROG(JG) = CV
  448. C********************************************
  449. C**** Fin de la table de gas ****************
  450. C********************************************
  451. C--------------------------
  452. C**** La list des inconnues
  453. C--------------------------
  454. TYPE='LISTMOTS'
  455. CALL LIROBJ(TYPE,ILIINC,1,IRET)
  456. IF(IERR .NE. 0) GOTO 9999
  457. MLMOTS = ILIINC
  458. SEGACT MLMOTS
  459. NC = MLMOTS.MOTS(/2)
  460. SEGDES MLMOTS
  461. IF(NC .NE. (IDIM+2+NESP))THEN
  462. MOTERR(1:40) = 'LISTINCO = ???'
  463. WRITE(IOIMP,*) MOTERR
  464. C--------------------------
  465. C Message d'erreur standard
  466. C 21 2
  467. C Données incompatibles
  468. C--------------------------
  469. CALL ERREUR(21)
  470. GOTO 9999
  471. ENDIF
  472. C-------------------------------------
  473. C******** Boundary condition *********
  474. C-------------------------------------
  475. IRET=0
  476. TYPE='MAILLAGE'
  477. CALL LIROBJ(TYPE,IFLIM,0,IRET)
  478. IF(IERR.NE.0)GOTO 9999
  479. IF(IRET .EQ. 0)THEN
  480. MELLIM = 0
  481. ELSE
  482. MELEME=IFLIM
  483. SEGACT MELEME
  484. ICACCA=MELEME.NUM(/2)
  485. IF(ICACCA .EQ. 0)THEN
  486. MELLIM = 0
  487. ELSE
  488. MELLIM = IFLIM
  489. ENDIF
  490. SEGDES MELEME
  491. ENDIF
  492. C--------------------------
  493. C**** La densité au centre
  494. C--------------------------
  495. TYPE = 'CHPOINT '
  496. CALL LIROBJ(TYPE,IRN,1,IRET)
  497. IF(IERR .NE. 0) GOTO 9999
  498. INDIC = 1
  499. NBCOMP = 1
  500. MOT = 'SCAL'
  501. CALL QUEPOI(IRN, MELEMC, INDIC, NBCOMP, MOT)
  502. IF(IERR .NE. 0) GOTO 9999
  503. C---------------------------
  504. C*** La vitesse au centre
  505. C---------------------------
  506. TYPE = 'CHPOINT '
  507. CALL LIROBJ(TYPE,IVN,1,IRET)
  508. IF(IERR .NE. 0) GOTO 9999
  509. JGN = 4
  510. JGM = IDIM
  511. SEGINI MLMVIT
  512. MLMVIT.MOTS(1) = 'UX '
  513. MLMVIT.MOTS(2) = 'UY '
  514. IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ '
  515. CALL QUEPO1(IVN, MELEMC, MLMVIT)
  516. SEGSUP MLMVIT
  517. IF(IERR .NE. 0) GOTO 9999
  518. C----------------------------
  519. C*** La pression au centre
  520. C----------------------------
  521. TYPE = 'CHPOINT '
  522. CALL LIROBJ(TYPE,IPN,1,IRET)
  523. IF(IERR .NE. 0) GOTO 9999
  524. INDIC = 1
  525. NBCOMP = 1
  526. MOT = 'SCAL'
  527. CALL QUEPOI(IPN, MELEMC, INDIC, NBCOMP, MOT)
  528. IF(IERR .NE. 0) GOTO 9999
  529. C-----------------------------
  530. C*** Fraction massiques
  531. C*** des especes "splittees"
  532. C-----------------------------
  533. TYPE = 'CHPOINT '
  534. CALL LIROBJ(TYPE,IYN,1,IRET)
  535. IF(IERR .NE. 0) GOTO 9999
  536. CALL QUEPO1(IYN, MELEMC, MLMOT1)
  537. IF(IERR .NE. 0) THEN
  538.  
  539. MOTERR = 'CHPO FR.MAS. = ?????'
  540. WRITE(IOIMP,*) MOTERR(1:40)
  541. CALL ERREUR(21)
  542. GOTO 9999
  543. ENDIF
  544. C-----------------------------------
  545. C**** Bas Mach
  546. C-----------------------------------
  547. IF(IIMPL .EQ. 2)THEN
  548. TYPE = 'CHPOINT '
  549. C------------------
  550. C******* Cut off 1
  551. C------------------
  552. CALL LIROBJ(TYPE,IUINF,1,IRET)
  553. IF(IERR .NE. 0) GOTO 9999
  554. INDIC = 1
  555. NBCOMP = 1
  556. MOT = 'SCAL'
  557. CALL QUEPOI(IUINF, MELEMC, INDIC, NBCOMP, MOT)
  558. IF(IERR .NE. 0) GOTO 9999
  559. C-----------------
  560. C******* Cut off 2
  561. C-----------------
  562. TYPE = 'CHPOINT '
  563. CALL LIROBJ(TYPE,IUPRI,1,IRET)
  564. IF(IERR .NE. 0) GOTO 9999
  565. INDIC = 1
  566. NBCOMP = 1
  567. MOT = 'SCAL'
  568. CALL QUEPOI(IUPRI, MELEMC, INDIC, NBCOMP, MOT)
  569. IF(IERR .NE. 0) GOTO 9999
  570. C
  571. ELSE
  572. IUINF=0
  573. IUPRI=0
  574. ENDIF
  575. C***************************************
  576. C***** Fin reading chpoints *********
  577. C***************************************
  578. NESP=NESP+1
  579. IF(IIMPL .EQ. 1)THEN
  580. c------------------------------
  581. c AUSM+
  582. c-----------------------------
  583. IF(IDIM .EQ. 2) THEN
  584. CALL KONMSP(NESP,ILIINC,IRN,IVN,IPN,IYN,MLRECP,
  585. & MLRECV,INORM,ICHPVO,ICHPSU,MELEMC,MELEFE,MELLIM,IJACO)
  586. ELSE
  587. CALL KONMS3(NESP,ILIINC,IRN,IVN,IPN,IYN,MLRECP,
  588. & MLRECV,INORM,ICHPVO,ICHPSU,MELEMC,MELEFE,MELLIM,IJACO)
  589. ENDIF
  590. C------------------------------------------------------------
  591. ELSEIF(IIMPL .EQ. 2)THEN
  592. C-----------------------------
  593. C********** AUSM+ low Mach
  594. C-----------------------------
  595. IF(IDIM .EQ. 2)THEN
  596. CALL KBMMS2(NESP,ILIINC,IRN,IVN,IPN,IYN,MLRECP,MLRECV,
  597. $ INORM,ICHPVO,ICHPSU, IUINF, IUPRI, MELEMC, MELEFE,
  598. $ MELLIM,IJACO)
  599. ENDIF
  600. ENDIF
  601. TYPE='MATRIK '
  602. CALL ECROBJ(TYPE,IJACO)
  603. 9999 CONTINUE
  604. RETURN
  605. END
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  

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