Télécharger zlap11.eso

Retour à la liste

Numérotation des lignes :

zlap11
  1. C ZLAP11 SOURCE CB215821 20/11/25 13:44:59 10792
  2. SUBROUTINE ZLAP11()
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : ZLAP11
  8. C
  9. C DESCRIPTION : Voir YLAPL1
  10. C
  11. C
  12. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  13. C
  14. C AUTEURS : A. BECCANTINI, DRN/DMT/SEMT/LTMF
  15. C Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  16. C mél : gounand@semt2.smts.cea.frC
  17. C************************************************************************
  18. C
  19. C
  20. C APPELES (E/S) : LIRMOT, ERREUR
  21. C
  22. C
  23. C APPELES :
  24. C
  25. C************************************************************************
  26. C*** ENTREE / SORTIE (voir Phrase d'appel GIBIANE)
  27. C***********************************************************************
  28. C HISTORIQUE (Anomalies et modifications éventuelles)
  29. C HISTORIQUE : 3.12.03 - added option for discretisation of
  30. C the diffusive terms in k-\eps equations
  31. C (explicit)
  32. C 12.1.04 - deliberatly put all the formation enthalpies
  33. C to 0.0D0; these contributions will be
  34. C positioned in the source term
  35. C************************************************************************
  36. C
  37. IMPLICIT INTEGER(I-N)
  38.  
  39. -INC PPARAM
  40. -INC CCOPTIO
  41. INTEGER NKID,NKMT,NMATRI,NRIGE
  42. -INC SMCHPOI
  43. POINTEUR MU.MCHPOI, MUT.MCHPOI, MUN.MCHPOI
  44. POINTEUR KAPPA.MCHPOI
  45. POINTEUR CVTOT.MCHPOI
  46. -INC SMLREEL
  47. -INC SMLMOTS
  48. POINTEUR MLMOEU.MLMOTS
  49. POINTEUR MLMNOM.MLMOTS
  50. POINTEUR MLDEFO.MLMOTS
  51. INTEGER JGM,JGN
  52. -INC SMCHAML
  53. POINTEUR ICOGRV.MCHELM
  54. POINTEUR ICOGRT.MCHELM
  55. -INC SMTABLE
  56. POINTEUR IPGAZ.MTABLE
  57. C
  58. C**** Variables pour ACCTAB
  59. C
  60. INTEGER IVALI, IRETI,IVALR, IRETR
  61. REAL*8 XVALI, XVALR
  62. LOGICAL LOGII, LOGIR
  63. CHARACTER*(8) MTYPI, MTYPR, CHARR
  64. C
  65. C**** Segment des caractéristiques du gaz
  66. C
  67. SEGMENT PROPHY
  68. CHARACTER*4 NOMESP(NESP+1)
  69. REAL*8 CV(NESP+1)
  70. REAL*8 R(NESP+1)
  71. REAL*8 H0K(NESP+1)
  72. POINTEUR CDIFF(NESP+1).MCHPOI
  73. POINTEUR YK(NESP+1).MCHPOI
  74. POINTEUR GRADYK(NESP+1).MCHPOI
  75. POINTEUR CGRYK(NESP+1).MCHELM
  76. POINTEUR CLYK(NESP+1).MCHPOI
  77. ENDSEGMENT
  78. INTEGER NESP
  79. C
  80. C**** Variables du programme
  81. C
  82. INTEGER IESP
  83. INTEGER ICELL, IRET, INDIC, NBCOMP
  84. & , IDOMA, MELEMC, MELEMF, MELEFL, ICHPSU, ICHPDI, ICHPVO
  85. & , INORM, IGRKEP
  86. & , IRN, IVN, ITN, IGRVN, IGRTN
  87. & , IVNIMP, ITAUIM, ITIMP,IQIMP,IRIMP
  88. & , ILIINC, NC, INEFMD, ICOND
  89. & , IJACO, ICHRES, NSOUPO,I1,NORD,NORDP1,IKEPS
  90. INTEGER ICHFLU,ICHFL2,ICHFL3,ICHTM1,ICHTMP
  91. REAL*8 DELTAT,DELTA2,DELTA3,TSIGK,TSIGE
  92. CHARACTER*(40) MESERR
  93. CHARACTER*4 NOMMOT, MOT(1), LFLUX(2), LIMPL(2)
  94. CHARACTER*8 TYPE
  95. LOGICAL LOGRES,LOGIMP,LOGAN
  96. C
  97. DATA LFLUX/'FLUX','RESI'/
  98. DATA LIMPL/'EXPL','IMPL'/
  99. C
  100. C**** Initialisation des variables pour la gestion des erreurs.
  101. C
  102. MESERR = ' '
  103. LOGAN = .FALSE.
  104. LOGRES = .FALSE.
  105. IKEPS = 0
  106. C
  107. C******* Flux ou residu?
  108. C
  109. CALL LIRMOT(LFLUX,2,ICELL,1)
  110. IF(IERR .NE. 0)GOTO 9999
  111. IF(ICELL .EQ. 1)THEN
  112. LOGRES = .FALSE.
  113. ELSEIF(ICELL .EQ. 2)THEN
  114. LOGRES = .TRUE.
  115. ELSE
  116. C
  117. C******** Message d'erreur standard
  118. C 251 2
  119. C Tentative d'utilisation d'une option non implémentée
  120. C
  121. CALL ERREUR(251)
  122. ENDIF
  123. C
  124. C
  125. CALL LIRMOT(LIMPL,2,ICELL,1)
  126. IF(IERR .NE. 0)GOTO 9999
  127. IF(ICELL .EQ. 1)THEN
  128. LOGIMP=.FALSE.
  129. ELSEIF(ICELL .EQ. 2)THEN
  130. LOGIMP=.TRUE.
  131. ELSE
  132. WRITE(IOIMP,*) 'Erreur de programmation'
  133. CALL ERREUR(5)
  134. GOTO 9999
  135. ENDIF
  136. C
  137. C**********************************
  138. C**** Lecture de l'objet MODELE ***
  139. C**********************************
  140. C
  141. ICOND = 1
  142. CALL QUETYP(TYPE,ICOND,IRET)
  143.  
  144. IF(IRET.EQ.0.AND.TYPE.NE.'MMODEL')THEN
  145. WRITE(6,*)' On attend un objet MMODEL'
  146. RETURN
  147. ENDIF
  148. CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET)
  149. IF(IERR.NE.0)GOTO 9999
  150. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  151. IF(IERR.NE.0)GOTO 9999
  152. C
  153. C**** Centre, FACE et FACEL
  154. C
  155. CALL LEKTAB(IDOMA,'CENTRE',MELEMC)
  156. IF(IERR .NE. 0) GOTO 9999
  157. C
  158. CALL LEKTAB(IDOMA,'FACE',MELEMF)
  159. IF(IERR .NE. 0) GOTO 9999
  160. C
  161. CALL LEKTAB(IDOMA,'FACEL',MELEFL)
  162. IF(IERR .NE. 0) GOTO 9999
  163. C
  164. C**** Lecture du CHPOINT contenant les surfaces des faces.
  165. C
  166. CALL LEKTAB(IDOMA,'XXSURFAC',ICHPSU)
  167. IF(IERR .NE. 0) GOTO 9999
  168. C
  169. C**** Lecture du CHPOINT contenant les diametres minimums.
  170. C
  171. CALL LEKTAB(IDOMA,'XXDIEMIN',ICHPDI)
  172. IF(IERR .NE. 0) GOTO 9999
  173. C
  174. C**** Lecture du CHPOINT contenant les volumes
  175. C
  176. CALL LEKTAB(IDOMA,'XXVOLUM',ICHPVO)
  177. IF(IERR .NE. 0) GOTO 9999
  178. C
  179. C********** Les normales aux faces
  180. C
  181. CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
  182. IF(IERR .NE. 0) GOTO 9999
  183. C
  184. C********************************
  185. C**** Fin table domaine *********
  186. C********************************
  187. C********************************
  188. C**** La table IPGAZ *******
  189. C********************************
  190. C
  191. C
  192. C**** Lecture de la table qui contient le proprieté du gaz
  193. C Cette table est controlle par l'operateur PRIM
  194. C
  195. CALL LIROBJ('TABLE',IPGAZ,1,IRET)
  196. IF(IERR .NE. 0)GOTO 9999
  197. C
  198. C**** NORD: degree des polynoms cv(T)
  199. C
  200. MTYPI = 'MOT '
  201. MTYPR = ' '
  202. CALL ACCTAB(IPGAZ,MTYPI,IVALI,XVALI,'NORD',LOGII,IRETI,
  203. & MTYPR,NORD,XVALR,CHARR,LOGIR,IRETR)
  204. IF(MTYPR .NE. 'ENTIER ')THEN
  205. C
  206. C**** Message d'erreur standard
  207. C -301 0 %m1:40
  208. C
  209. MOTERR(1:40) = 'ARG1 . NORD = ??? '
  210. WRITE(IOIMP,*) MOTERR
  211. C
  212. C**** Message d'erreur standard
  213. C 21 2
  214. C Données incompatibles
  215. C
  216. CALL ERREUR(21)
  217. GOTO 9999
  218. ENDIF
  219. NORDP1 = NORD + 1
  220. IF (NORDP1.NE.1) THEN
  221. C
  222. C**** Message d'erreur standard
  223. C -301 0 %m1:40
  224. C
  225. MOTERR(1:40) = 'ARG1 . NORD .NE. 0 '
  226. WRITE(IOIMP,*) MOTERR
  227. C
  228. C**** Message d'erreur standard
  229. C 21 2
  230. C Données incompatibles
  231. C
  232. CALL ERREUR(21)
  233. GOTO 9999
  234. ENDIF
  235. C
  236. C**** Nom de l'espece qui n'est pas dans les equations de Navier-Stokes
  237. C
  238. MTYPI = 'MOT '
  239. MTYPR = ' '
  240. CALL ACCTAB(IPGAZ,MTYPI,IVALI,XVALI,'ESPNEULE',LOGII,IRETI,
  241. & MTYPR,IVALR,XVALR,CHARR,LOGIR,IRETR)
  242. IF(MTYPR .NE. 'MOT ')THEN
  243. C
  244. C**** Message d'erreur standard
  245. C -301 0 %m1:40
  246. C
  247. MOTERR(1:40) = 'ARG1 . ESPNEULE = ??? '
  248. WRITE(IOIMP,*) MOTERR
  249. C
  250. C******* Message d'erreur standard
  251. C 21 2
  252. C Données incompatibles
  253. C
  254. CALL ERREUR(21)
  255. GOTO 9999
  256. ENDIF
  257. C
  258. C**** Les especes qui sont dans les Equations de Navier-Stokes
  259. C
  260. MTYPR = ' '
  261. CALL ACMO(IPGAZ,'ESPEULE',MTYPR,MLMOEU)
  262. IF(MTYPR .NE. 'LISTMOTS')THEN
  263. C
  264. C**** Message d'erreur standard
  265. C -301 0 %m1:40
  266. C
  267. MOTERR(1:40) = 'ARG1 . ESPEULE = ??? '
  268. WRITE(IOIMP,*) MOTERR
  269. C
  270. C**** Message d'erreur standard
  271. C 21 2
  272. C Données incompatibles
  273. C
  274. CALL ERREUR(21)
  275. GOTO 9999
  276. ELSE
  277. SEGACT MLMOEU
  278. NESP = MLMOEU.MOTS(/2)
  279. SEGINI PROPHY
  280. DO 1 I1 = 1, NESP
  281. PROPHY.NOMESP(I1) = MLMOEU.MOTS(I1)
  282. 1 CONTINUE
  283. PROPHY.NOMESP(NESP+1)=CHARR(1:4)
  284. SEGDES MLMOEU
  285. ENDIF
  286. C
  287. C**** On remplit le segment PROPHY
  288. C Ordre: IPGAZ . 'ESPEULE' + IPGAZ . 'ESPNEULE'
  289. C On controle aussi la compatibilite des
  290. C donnees de la table
  291. C
  292. DO 3 I1 = 1, NESP+1
  293. NOMMOT = PROPHY.NOMESP(I1)
  294. C
  295. C******* CALL ACMF(...) ne marche pas parce que on a
  296. C des espaces dans nos noms de composantes
  297. C
  298. MTYPI = 'MOT '
  299. MTYPR = ' '
  300. CALL ACCTAB(IPGAZ,MTYPI,IVALI,XVALI,NOMMOT, LOGII,IRETI,
  301. & MTYPR,IVALR,XVALR,CHARR,LOGIR,IESP)
  302. C
  303. C******* En IESP il y a la table IPGAZ.NOMMOT
  304. C
  305. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'TABLE ')) THEN
  306.  
  307. C
  308. C********** Message d'erreur standard
  309. C -301 0 %m1:40
  310. C
  311. MOTERR = ' '
  312. MOTERR(1:7) = 'ARG1 . '
  313. MOTERR(8:11) = NOMMOT
  314. MOTERR(13:17) = '= ???'
  315. WRITE(IOIMP,*) MOTERR
  316. C
  317. C********** Message d'erreur standard
  318. C 21 2
  319. C Données incompatibles
  320. C
  321. CALL ERREUR(21)
  322. GOTO 9999
  323. ENDIF
  324. C
  325. C******* R
  326. C
  327. MTYPI = 'MOT '
  328. MTYPR = ' '
  329. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'R' , LOGII,IRETI,
  330. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  331. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  332.  
  333. C
  334. C********** Message d'erreur standard
  335. C -301 0 %m1:40
  336. C
  337. MOTERR = ' '
  338. MOTERR(1:7) = 'ARG1 . '
  339. MOTERR(8:11) = NOMMOT
  340. MOTERR(13:23) = ' . R = ??? '
  341. WRITE(IOIMP,*) MOTERR
  342. C
  343. C********** Message d'erreur standard
  344. C 21 2
  345. C Données incompatibles
  346. C
  347. CALL ERREUR(21)
  348. GOTO 9999
  349. ENDIF
  350. PROPHY.R(I1)=XVALR
  351. C
  352. C******* H0K
  353. C
  354. MTYPI = 'MOT '
  355. MTYPR = ' '
  356. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'H0K' , LOGII,IRETI,
  357. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  358. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  359.  
  360. C
  361. C********** Message d'erreur standard
  362. C -301 0 %m1:40
  363. C
  364. MOTERR = ' '
  365. MOTERR(1:7) = 'ARG1 . '
  366. MOTERR(8:11) = NOMMOT
  367. MOTERR(13:25) = ' . H0K = ??? '
  368. WRITE(IOIMP,*) MOTERR
  369. C
  370. C********** Message d'erreur standard
  371. C 21 2
  372. C Données incompatibles
  373. C
  374. CALL ERREUR(21)
  375. GOTO 9999
  376. ENDIF
  377. C-------------------------------------
  378. C Attention! we put all h_k^0 to 0.0D0
  379. C all chemistry goes to the source term
  380. C-------------------------------------
  381. c PROPHY.H0K(I1)=XVALR
  382. PROPHY.H0K(I1)=0.0D0
  383. C
  384. C******* CDIFF
  385. C
  386. MTYPI = 'MOT '
  387. MTYPR = ' '
  388. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'CDIFF' , LOGII,IRETI,
  389. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  390. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'CHPOINT ')) THEN
  391.  
  392. C
  393. C********** Message d'erreur standard
  394. C -301 0 %m1:40
  395. C
  396. MOTERR = ' '
  397. MOTERR(1:7) = 'ARG1 . '
  398. MOTERR(8:11) = NOMMOT
  399. MOTERR(13:25) = ' . CDIFF = ??'
  400. WRITE(IOIMP,*) MOTERR
  401. C
  402. C********** Message d'erreur standard
  403. C 21 2
  404. C Données incompatibles
  405. C
  406. CALL ERREUR(21)
  407. GOTO 9999
  408. ENDIF
  409. PROPHY.CDIFF(I1)=IRETR
  410. C
  411. C******* A
  412. C
  413. MTYPI = 'MOT '
  414. MTYPR = ' '
  415. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'A' , LOGII,IRETI,
  416. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  417. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'LISTREEL')) THEN
  418.  
  419. C
  420. C********** Message d'erreur standard
  421. C -301 0 %m1:40
  422. C
  423. MOTERR = ' '
  424. MOTERR(1:7) = 'ARG1 . '
  425. MOTERR(8:11) = NOMMOT
  426. MOTERR(13:23) = ' . A = ??? '
  427. WRITE(IOIMP,*) MOTERR
  428. C
  429. C********** Message d'erreur standard
  430. C 21 2
  431. C Données incompatibles
  432. C
  433. CALL ERREUR(21)
  434. GOTO 9999
  435. ENDIF
  436. MLREEL = IRETR
  437. SEGACT MLREEL
  438. PROPHY.CV(I1)=MLREEL.PROG(1)
  439. SEGDES MLREEL
  440. C
  441. C******* YK
  442. C
  443. MTYPI = 'MOT '
  444. MTYPR = ' '
  445. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'YK' , LOGII,IRETI,
  446. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  447. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'CHPOINT ')) THEN
  448.  
  449. C
  450. C********** Message d'erreur standard
  451. C -301 0 %m1:40
  452. C
  453. MOTERR = ' '
  454. MOTERR(1:7) = 'ARG1 . '
  455. MOTERR(8:11) = NOMMOT
  456. MOTERR(13:28) = ' . YK = ??? '
  457. WRITE(IOIMP,*) MOTERR
  458. C
  459. C********** Message d'erreur standard
  460. C 21 2
  461. C Données incompatibles
  462. C
  463. CALL ERREUR(21)
  464. GOTO 9999
  465. ENDIF
  466. PROPHY.YK(I1)=IRETR
  467. C
  468. C******* GRADYK
  469. C
  470. MTYPI = 'MOT '
  471. MTYPR = ' '
  472. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'GRADYK' , LOGII,IRETI,
  473. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  474. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'CHPOINT ')) THEN
  475.  
  476. C
  477. C********** Message d'erreur standard
  478. C -301 0 %m1:40
  479. C
  480. MOTERR = ' '
  481. MOTERR(1:7) = 'ARG1 . '
  482. MOTERR(8:11) = NOMMOT
  483. MOTERR(13:28) = ' . GRADYK = ??? '
  484. WRITE(IOIMP,*) MOTERR
  485. C
  486. C********** Message d'erreur standard
  487. C 21 2
  488. C Données incompatibles
  489. C
  490. CALL ERREUR(21)
  491. GOTO 9999
  492. ENDIF
  493. PROPHY.GRADYK(I1)=IRETR
  494. C
  495. C******* CGRYK
  496. C
  497. MTYPI = 'MOT '
  498. MTYPR = ' '
  499. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'CGRYK' , LOGII,IRETI,
  500. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  501. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'MCHAML ')) THEN
  502.  
  503. C
  504. C********** Message d'erreur standard
  505. C -301 0 %m1:40
  506. C
  507. MOTERR = ' '
  508. MOTERR(1:7) = 'ARG1 . '
  509. MOTERR(8:11) = NOMMOT
  510. MOTERR(13:28) = ' . CGRYK = ??? '
  511. WRITE(IOIMP,*) MOTERR
  512. C
  513. C********** Message d'erreur standard
  514. C 21 2
  515. C Données incompatibles
  516. C
  517. CALL ERREUR(21)
  518. GOTO 9999
  519. ENDIF
  520. PROPHY.CGRYK(I1)=IRETR
  521. C
  522. C******* CLYK
  523. C
  524. MTYPI = 'MOT '
  525. MTYPR = ' '
  526. CALL ACCTAB(IESP,MTYPI,IVALI,XVALI, 'CLYK' , LOGII,IRETI,
  527. & MTYPR,IVALR, XVALR ,CHARR,LOGIR,IRETR)
  528. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'CHPOINT ')) THEN
  529.  
  530. IF (MTYPR .NE. ' ') THEN
  531. C
  532. C********** Message d'erreur standard
  533. C -301 0 %m1:40
  534. C
  535. MOTERR = ' '
  536. MOTERR(1:7) = 'ARG1 . '
  537. MOTERR(8:11) = NOMMOT
  538. MOTERR(13:28) = ' . CLYK = ??? '
  539. WRITE(IOIMP,*) MOTERR
  540. C
  541. C********** Message d'erreur standard
  542. C 21 2
  543. C Données incompatibles
  544. C
  545. CALL ERREUR(21)
  546. GOTO 9999
  547. ENDIF
  548. IRETR = 0
  549. ELSE
  550. MCHPOI = IRETR
  551. SEGACT MCHPOI
  552. NSOUPO = MCHPOI.IPCHP(/1)
  553. SEGDES MCHPOI
  554. IF(NSOUPO .GT.0)THEN
  555. JGN = 4
  556. JGM = 1
  557. SEGINI MLMNOM
  558. MLMNOM.MOTS(1) = 'SCAL'
  559. CALL QUEPO1(IRETR, 0, MLMNOM)
  560. IF(IERR .NE. 0) GOTO 9999
  561. SEGSUP MLMNOM
  562. ELSE
  563. IRETR=0
  564. ENDIF
  565. ENDIF
  566. PROPHY.CLYK(I1)=IRETR
  567. 3 CONTINUE
  568. SEGDES PROPHY
  569. C
  570. C**** La table IPGAZ donc a ete controllee et PROPHY est rempli
  571. C
  572. C
  573. C**** Viscosité dynamique (kg/m/sec)
  574. C
  575. TYPE = 'CHPOINT '
  576. CALL LIROBJ(TYPE,MU,1,IRET)
  577. IF(IERR .NE. 0) GOTO 9999
  578. INDIC = 1
  579. NBCOMP = 1
  580. MOT(1) = 'SCAL'
  581. CALL QUEPOI(MU, MELEMC, INDIC, NBCOMP, MOT)
  582. C
  583. C**** Conductivité thermique (J/sec/m/K)
  584. C
  585. TYPE = 'CHPOINT '
  586. CALL LIROBJ(TYPE,KAPPA,1,IRET)
  587. IF(IERR .NE. 0) GOTO 9999
  588. INDIC = 1
  589. NBCOMP = 1
  590. MOT(1) = 'SCAL'
  591. CALL QUEPOI(KAPPA, MELEMC, INDIC, NBCOMP, MOT)
  592. C
  593. C**** Chaleur specifique (J/kg/K)
  594. C
  595. TYPE = 'CHPOINT '
  596. CALL LIROBJ(TYPE,CVTOT,1,IRET)
  597. IF(IERR .NE. 0) GOTO 9999
  598. INDIC = 1
  599. NBCOMP = 1
  600. MOT(1) = 'SCAL'
  601. CALL QUEPOI(CVTOT, MELEMC, INDIC, NBCOMP, MOT)
  602. C
  603. C**** Densité
  604. C
  605. TYPE = 'CHPOINT '
  606. CALL LIROBJ(TYPE,IRN,1,IRET)
  607. IF(IERR .NE. 0) GOTO 9999
  608. INDIC = 1
  609. NBCOMP = 1
  610. MOT(1) = 'SCAL'
  611. CALL QUEPOI(IRN, MELEMC, INDIC, NBCOMP, MOT)
  612. C
  613. C**** Vitesse
  614. C
  615. TYPE='CHPOINT '
  616. CALL LIROBJ(TYPE,IVN,1,IRET)
  617. IF(IERR .NE. 0) GOTO 9999
  618. JGN = 4
  619. JGM = IDIM
  620. SEGINI MLMNOM
  621. MLMNOM.MOTS(1) = 'UX '
  622. MLMNOM.MOTS(2) = 'UY '
  623. IF(IDIM.EQ.3) MLMNOM.MOTS(3) = 'UZ '
  624. CALL QUEPO1(IVN, MELEMC, MLMNOM)
  625. IF(IERR .NE. 0) GOTO 9999
  626. SEGSUP MLMNOM
  627. C
  628. C**** Température
  629. C
  630. TYPE='CHPOINT '
  631. CALL LIROBJ(TYPE,ITN,1,IRET)
  632. IF(IERR .NE. 0) GOTO 9999
  633. JGN = 4
  634. JGM = 1
  635. SEGINI MLMNOM
  636. MLMNOM.MOTS(1) = 'SCAL'
  637. CALL QUEPO1(ITN, MELEMC, MLMNOM)
  638. IF(IERR .NE. 0) GOTO 9999
  639. SEGSUP MLMNOM
  640. C
  641. C**** Gradient de la vitesse
  642. C
  643. TYPE='CHPOINT '
  644. CALL LIROBJ(TYPE,IGRVN,1,IRET)
  645. IF(IERR .NE. 0) GOTO 9999
  646. JGN = 4
  647. JGM =IDIM*IDIM
  648. SEGINI MLMNOM
  649. IF(IDIM.EQ.2)THEN
  650. MLMNOM.MOTS(1) = 'P1DX'
  651. MLMNOM.MOTS(2) = 'P1DY'
  652. MLMNOM.MOTS(3) = 'P2DX'
  653. MLMNOM.MOTS(4) = 'P2DY'
  654. ELSE
  655. MLMNOM.MOTS(1) = 'P1DX'
  656. MLMNOM.MOTS(2) = 'P1DY'
  657. MLMNOM.MOTS(3) = 'P1DZ'
  658. MLMNOM.MOTS(4) = 'P2DX'
  659. MLMNOM.MOTS(5) = 'P2DY'
  660. MLMNOM.MOTS(6) = 'P2DZ'
  661. MLMNOM.MOTS(7) = 'P3DX'
  662. MLMNOM.MOTS(8) = 'P3DY'
  663. MLMNOM.MOTS(9) = 'P3DZ'
  664. ENDIF
  665. CALL QUEPO1(IGRVN, MELEMF, MLMNOM)
  666. IF(IERR .NE. 0) GOTO 9999
  667. SEGSUP MLMNOM
  668. C
  669. C**** Gradient de la temperature
  670. C
  671. TYPE='CHPOINT '
  672. CALL LIROBJ(TYPE,IGRTN,1,IRET)
  673. IF(IERR .NE. 0) GOTO 9999
  674. JGN = 4
  675. JGM=IDIM
  676. SEGINI MLMNOM
  677. MLMNOM.MOTS(1) = 'P1DX'
  678. MLMNOM.MOTS(2) = 'P1DY'
  679. IF(IDIM.EQ.3) MLMNOM.MOTS(3) = 'P1DZ '
  680. CALL QUEPO1(IGRTN, MELEMF, MLMNOM)
  681. IF(IERR .NE. 0) GOTO 9999
  682. SEGSUP MLMNOM
  683. C
  684. C
  685. IF (LOGIMP) THEN
  686. CALL LIROBJ('MCHAML ',ICOGRV,1,IRET)
  687. IF(IERR .NE. 0) GOTO 9999
  688. ENDIF
  689. C
  690. C
  691. IF (LOGIMP) THEN
  692. CALL LIROBJ('MCHAML ',ICOGRT,1,IRET)
  693. IF(IERR .NE. 0) GOTO 9999
  694. ENDIF
  695. C--------------------------------------------------
  696. C**** Conditions limites
  697. C--------------------------------------------------
  698. C Vitesse imposée à la paroi
  699. C
  700. CALL LIRCHA(MOT(1),0,IRET)
  701. IF(IRET .NE. 0)THEN
  702. IF(MOT(1) .EQ. 'VIMP')THEN
  703. TYPE='CHPOINT '
  704. CALL LIROBJ(TYPE,IVNIMP,1,IRET)
  705. IF(IERR .NE. 0) GOTO 9999
  706. MCHPOI = IVNIMP
  707. SEGACT MCHPOI
  708. NSOUPO = MCHPOI.IPCHP(/1)
  709. SEGDES MCHPOI
  710. IF(NSOUPO .GT. 0)THEN
  711. JGN = 4
  712. JGM = IDIM
  713. SEGINI MLMNOM
  714. MLMNOM.MOTS(1) = 'UX '
  715. MLMNOM.MOTS(2) = 'UY '
  716. IF(IDIM.EQ.3) MLMNOM.MOTS(3) = 'UZ '
  717. CALL QUEPO1(IVNIMP, 0, MLMNOM)
  718. IF(IERR .NE. 0) GOTO 9999
  719. SEGSUP MLMNOM
  720. ELSE
  721. IVNIMP=0
  722. ENDIF
  723. ELSE
  724. IVNIMP=0
  725. C
  726. C********** Je m'excuse et je le remets dans la pile
  727. C
  728. CALL REFUS
  729. ENDIF
  730. ELSE
  731. IVNIMP=0
  732. ENDIF
  733. C
  734. C Tenseur des contraintes visqueux
  735. C
  736. CALL LIRCHA(MOT(1),0,IRET)
  737. IF(IRET .NE. 0)THEN
  738. IF(MOT(1) .EQ. 'TAUI')THEN
  739. TYPE='CHPOINT '
  740. CALL LIROBJ(TYPE,ITAUIM,1,IRET)
  741. IF(IERR .NE. 0) GOTO 9999
  742. MCHPOI = ITAUIM
  743. SEGACT MCHPOI
  744. NSOUPO = MCHPOI.IPCHP(/1)
  745. SEGDES MCHPOI
  746. IF(NSOUPO .GT. 0)THEN
  747. JGN = 4
  748. C 2D only
  749. JGM = 3*(IDIM-1)
  750. SEGINI MLMNOM
  751. IF(IDIM .EQ.2)THEN
  752. MLMNOM.MOTS(1) = 'TXX'
  753. MLMNOM.MOTS(2) = 'TYY'
  754. MLMNOM.MOTS(3) = 'TXY'
  755. ELSE
  756. MLMNOM.MOTS(1) = 'TXX'
  757. MLMNOM.MOTS(2) = 'TYY'
  758. MLMNOM.MOTS(3) = 'TZZ'
  759. MLMNOM.MOTS(4) = 'TXY'
  760. MLMNOM.MOTS(5) = 'TXZ'
  761. MLMNOM.MOTS(6) = 'TYZ'
  762. ENDIF
  763. CALL QUEPO1(ITAUIM, 0, MLMNOM)
  764. IF(IERR .NE. 0) GOTO 9999
  765. SEGSUP MLMNOM
  766. ELSE
  767. ITAUIM=0
  768. ENDIF
  769. ELSE
  770. ITAUIM=0
  771. C
  772. C********** Je m'excuse et je le remets dans la pile
  773. C
  774. CALL REFUS
  775. ENDIF
  776. ELSE
  777. ITAUIM=0
  778. ENDIF
  779. C
  780. C Flux thermique
  781. C
  782. CALL LIRCHA(MOT(1),0,IRET)
  783. IF(IRET .NE. 0)THEN
  784. IF(MOT(1) .EQ. 'QIMP')THEN
  785. TYPE='CHPOINT '
  786. CALL LIROBJ(TYPE,IQIMP,1,IRET)
  787. IF(IERR .NE. 0) GOTO 9999
  788. MCHPOI = IQIMP
  789. SEGACT MCHPOI
  790. NSOUPO = MCHPOI.IPCHP(/1)
  791. SEGDES MCHPOI
  792. IF(NSOUPO .GT.0)THEN
  793. JGN = 4
  794. JGM = IDIM
  795. SEGINI MLMNOM
  796. MLMNOM.MOTS(1) = 'UX '
  797. MLMNOM.MOTS(2) = 'UY '
  798. IF(IDIM .EQ. 3) MLMNOM.MOTS(3) = 'UZ '
  799. CALL QUEPO1(IQIMP, 0, MLMNOM)
  800. IF(IERR .NE. 0) GOTO 9999
  801. SEGSUP MLMNOM
  802. ELSE
  803. IQIMP=0
  804. ENDIF
  805. ELSE
  806. IQIMP=0
  807. C
  808. C********** Je m'excuse et je le remets dans la pile
  809. C
  810. CALL REFUS
  811. ENDIF
  812. ELSE
  813. IQIMP=0
  814. ENDIF
  815. C
  816. C Température imposée
  817. C
  818. CALL LIRCHA(MOT(1),0,IRET)
  819. IF(IRET .NE. 0)THEN
  820. IF(MOT(1) .EQ. 'TIMP')THEN
  821. TYPE='CHPOINT '
  822. CALL LIROBJ(TYPE,ITIMP,1,IRET)
  823. IF(IERR .NE. 0) GOTO 9999
  824. MCHPOI = ITIMP
  825. SEGACT MCHPOI
  826. NSOUPO = MCHPOI.IPCHP(/1)
  827. SEGDES MCHPOI
  828. IF(NSOUPO .GT.0)THEN
  829. JGN = 4
  830. JGM = 1
  831. SEGINI MLMNOM
  832. MLMNOM.MOTS(1) = 'SCAL'
  833. CALL QUEPO1(ITIMP, 0, MLMNOM)
  834. IF(IERR .NE. 0) GOTO 9999
  835. SEGSUP MLMNOM
  836. ELSE
  837. ITIMP=0
  838. ENDIF
  839. ELSE
  840. ITIMP=0
  841. C
  842. C********** Je m'excuse et je le remets dans la pile
  843. C
  844. CALL REFUS
  845. ENDIF
  846. ELSE
  847. ITIMP=0
  848. ENDIF
  849. C
  850. C Densité imposée
  851. C
  852. CALL LIRCHA(MOT(1),0,IRET)
  853. IF(IRET .NE. 0)THEN
  854. IF(MOT(1) .EQ. 'RIMP')THEN
  855. TYPE='CHPOINT '
  856. CALL LIROBJ(TYPE,IRIMP,1,IRET)
  857. IF(IERR .NE. 0) GOTO 9999
  858. MCHPOI = IRIMP
  859. SEGACT MCHPOI
  860. NSOUPO = MCHPOI.IPCHP(/1)
  861. SEGDES MCHPOI
  862. IF(NSOUPO .GT.0)THEN
  863. JGN = 4
  864. JGM = 1
  865. SEGINI MLMNOM
  866. MLMNOM.MOTS(1) = 'SCAL'
  867. CALL QUEPO1(IRIMP, 0, MLMNOM)
  868. IF(IERR .NE. 0) GOTO 9999
  869. SEGSUP MLMNOM
  870. ELSE
  871. IRIMP=0
  872. ENDIF
  873. ELSE
  874. IRIMP=0
  875. C
  876. C********** Je m'excuse et je le remets dans la pile
  877. C
  878. CALL REFUS
  879. ENDIF
  880. ELSE
  881. IRIMP=0
  882. ENDIF
  883. C
  884. C**** Les noms des inconnues
  885. C
  886. TYPE='LISTMOTS'
  887. CALL LIROBJ(TYPE,ILIINC,1,IRET)
  888. IF(IERR .NE. 0) GOTO 9999
  889. MLMOTS = ILIINC
  890. SEGACT MLMOTS
  891. NC = MLMOTS.MOTS(/2)
  892. SEGDES MLMOTS
  893. IF(NC .EQ. (IDIM+4+NESP)) IKEPS = 1
  894. IF(IKEPS .EQ. 0) THEN
  895. IF((NC .NE. (IDIM+2+NESP)))THEN
  896. MESERR='LMOT1 = ??? '
  897. WRITE(IOIMP,*) MESERR
  898. C
  899. C********** Message d'erreur standard
  900. C 21 2
  901. C Données incompatibles
  902. C
  903. CALL ERREUR(21)
  904. GOTO 9999
  905. ENDIF
  906. ENDIF
  907. *!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  908. IF(IKEPS .GT. 0) THEN
  909. C************************************************************
  910. C The turbulent kinetic energy and rate of dissipation
  911. C------------------------------------------------------------
  912. MTYPI = 'MOT '
  913. MTYPR = ' '
  914. CALL ACCTAB(IPGAZ,MTYPI,IVALI,XVALI,'MUTURB',LOGII,IRETI,
  915. & MTYPR,IVALR,XVALR,CHARR,LOGIR,IRETR)
  916. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'CHPOINT ')) THEN
  917. C------------------------------
  918. C Message d'erreur standard
  919. C -301 0 %m1:40
  920. C------------------------------
  921. MOTERR = 'TAB1 . MUTURB = ??? '
  922. WRITE(IOIMP,*) MOTERR(1:40)
  923. C------------------------------
  924. C Message d'erreur standard
  925. C 21 2
  926. C Données incompatibles
  927. C------------------------------
  928. CALL ERREUR(21)
  929. GOTO 9999
  930. ENDIF
  931. MUT = IRETR
  932. INDIC = 1
  933. NBCOMP = 1
  934. MOT(1) = 'SCAL'
  935. CALL QUEPOI(MUT, MELEMC, INDIC, NBCOMP, MOT)
  936. C--------- \sigma_ka
  937. CALL ACMF(IPGAZ,'SIGK',XVALR)
  938. TSIGK = XVALR
  939. C--------- \sigma_eps
  940. CALL ACMF(IPGAZ,'SIGE',XVALR)
  941. TSIGE = XVALR
  942. C--------------------------------------------
  943. C Creating the "new" turbulence for momentum
  944. C equations \mu_n = \mu + \mu_t
  945. C--------------------------------------------
  946. CALL ADCHPO(MU,MUT,MUN,1.D0,1.D0)
  947. C*************************************************************
  948. C The gradient at the faces of the turb. kin. en. and epsilon
  949. C-------------------------------------------------------------
  950. TYPE='CHPOINT '
  951. CALL LIROBJ(TYPE,IGRKEP,1,IRET)
  952. IF(IERR .NE. 0) GOTO 9999
  953. JGN = 4
  954. IF(IDIM.EQ.2) THEN
  955. JGM = 4
  956. ELSE
  957. JGM = 6
  958. ENDIF
  959. SEGINI MLMNOM
  960. IF(IDIM.EQ.2)THEN
  961. MLMNOM.MOTS(1) = 'P1DX'
  962. MLMNOM.MOTS(2) = 'P1DY'
  963. MLMNOM.MOTS(3) = 'P2DX'
  964. MLMNOM.MOTS(4) = 'P2DY'
  965. ELSE
  966. MLMNOM.MOTS(1) = 'P1DX'
  967. MLMNOM.MOTS(2) = 'P1DY'
  968. MLMNOM.MOTS(3) = 'P1DZ'
  969. MLMNOM.MOTS(4) = 'P2DX'
  970. MLMNOM.MOTS(5) = 'P2DY'
  971. MLMNOM.MOTS(6) = 'P2DZ'
  972. ENDIF
  973. CALL QUEPO1(IGRKEP, MELEMF, MLMNOM)
  974. IF(IERR .NE. 0) GOTO 9999
  975. SEGSUP MLMNOM
  976. C-------------------------------------------
  977. C End of reading of the additional information
  978. C needed for the turbulent terms
  979. C-------------------------------------------
  980. ENDIF
  981. C--------------------------------
  982. C Fin de la lecture des données
  983. C--------------------------------
  984. C
  985. C Création de la matrice jacobienne du résidu du laplacien VF
  986. C
  987. IF (LOGIMP) THEN
  988. IF (IDIM.EQ.2) THEN
  989. CALL XLAP1A(MU,KAPPA,CVTOT,IRN,IVN,ITN,
  990. $ IGRVN,ICOGRV,ICOGRT,
  991. $ IVNIMP,ITAUIM,ITIMP,IQIMP,
  992. $ MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPVO,MLMOTS,
  993. $ IJACO)
  994. CALL ZLAP1A(PROPHY,IRN,ITN,
  995. $ ITIMP,IRIMP,
  996. $ MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPVO,MLMOTS,
  997. $ IJACO)
  998. ELSEIF (IDIM.EQ.3) THEN
  999. CALL XLAP2A(MU,KAPPA,CVTOT,IRN,IVN,ITN,
  1000. $ IGRVN,ICOGRV,ICOGRT,
  1001. $ IVNIMP,ITAUIM,ITIMP,IQIMP,
  1002. $ MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPVO,MLMOTS,
  1003. $ IJACO)
  1004. CALL ZLAP2A(PROPHY,IRN,ITN,
  1005. $ ITIMP,IRIMP,
  1006. $ MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPVO,MLMOTS,
  1007. $ IJACO)
  1008. ELSE
  1009. WRITE(IOIMP,*) 'IDIM=',IDIM,' ILLICITE.'
  1010. CALL ERREUR(5)
  1011. GOTO 9999
  1012. ENDIF
  1013. ELSE
  1014. C
  1015. C******* Objet MATRIK vide en explicite
  1016. C
  1017. NRIGE=7
  1018. NMATRI=0
  1019. NKID =9
  1020. NKMT =7
  1021. SEGINI MATRIK
  1022. SEGDES MATRIK
  1023. IJACO = MATRIK
  1024. ENDIF
  1025. C
  1026. C**** Creation des flux aux interfaces
  1027. C
  1028. JGN=4
  1029. JGM=IDIM+NESP+1
  1030. IF(IKEPS .GT. 0) JGM=IDIM+NESP+3
  1031. SEGINI MLDEFO
  1032. SEGACT MLMOTS
  1033. DO ICELL=1,JGM,1
  1034. MLDEFO.MOTS(ICELL)=MLMOTS.MOTS(ICELL+1)
  1035. ENDDO
  1036. SEGDES MLMOTS
  1037. TYPE = 'CHPOINT '
  1038. CALL KRCHP1(TYPE, MELEMF, ICHFLU, MLDEFO)
  1039. CALL KRCHP1(TYPE, MELEMF, ICHFL2, MLDEFO)
  1040. IF(IKEPS .GT. 0) THEN
  1041. CALL KRCHP1(TYPE, MELEMF, ICHFL3, MLDEFO)
  1042. ENDIF
  1043. C
  1044. C**** Calcul des flux et du pas du temps.
  1045. C
  1046. IF(IDIM.EQ.2)THEN
  1047. IF(IKEPS .GT. 0) THEN
  1048. CALL XLAP12(MUN,KAPPA,CVTOT,IRN,IVN,IGRVN,IGRTN,
  1049. & IVNIMP,ITAUIM,IQIMP,
  1050. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFLU,DELTAT)
  1051. ELSE
  1052. CALL XLAP12(MU,KAPPA,CVTOT,IRN,IVN,IGRVN,IGRTN,
  1053. & IVNIMP,ITAUIM,IQIMP,
  1054. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFLU,DELTAT)
  1055. ENDIF
  1056. CALL ZLAP12(PROPHY,IRN,ITN,
  1057. & ITIMP,IRIMP,
  1058. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFL2,DELTA2)
  1059. IF(IKEPS .GT. 0) THEN
  1060. CALL TLAP12(NESP,MU,MUT,TSIGK,TSIGE,IGRKEP,
  1061. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFL3,DELTA3)
  1062. ENDIF
  1063. C------------------------------------------
  1064. C ET sur les chpoints
  1065. C------------------------------------------
  1066. CALL ADCHPO(ICHFLU,ICHFL2,ICHTM1,1.D0,1.D0)
  1067. IF (ICHTM1.EQ.0) THEN
  1068. WRITE(IOIMP,*) 'Pas pu faire le ET des chpoints...'
  1069. GOTO 9999
  1070. ENDIF
  1071. IF(IKEPS .GT. 0) THEN
  1072. CALL ADCHPO(ICHTM1,ICHFL3,ICHTMP,1.D0,1.D0)
  1073. IF (ICHTMP.EQ.0) THEN
  1074. WRITE(IOIMP,*) 'Pas pu faire le ET des chpoints...'
  1075. GOTO 9999
  1076. ENDIF
  1077. ENDIF
  1078. CALL DTCHPO(ICHFLU)
  1079. CALL DTCHPO(ICHFL2)
  1080. IF(IKEPS .GT. 0) THEN
  1081. CALL DTCHPO(ICHFL3)
  1082. CALL DTCHPO(ICHTM1)
  1083. ICHFLU=ICHTMP
  1084. DELTAT=MIN(DELTAT,DELTA2)
  1085. ELSE
  1086. ICHFLU=ICHTM1
  1087. DELTAT=MIN(DELTAT,DELTA2)
  1088. ENDIF
  1089. ELSE
  1090. c----------------------------------------
  1091. IF(IKEPS .GT. 0) THEN
  1092. CALL XLAP13(MUN,KAPPA,CVTOT,IRN,IVN,IGRVN,IGRTN,
  1093. & IVNIMP,ITAUIM,IQIMP,
  1094. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFLU,DELTAT)
  1095. ELSE
  1096. CALL XLAP13(MU,KAPPA,CVTOT,IRN,IVN,IGRVN,IGRTN,
  1097. & IVNIMP,ITAUIM,IQIMP,
  1098. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFLU,DELTAT)
  1099. ENDIF
  1100. c----------------------------------------
  1101. CALL ZLAP13(PROPHY,IRN,ITN,
  1102. & ITIMP,IRIMP,
  1103. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFL2,DELTA2)
  1104. IF(IKEPS .GT. 0) THEN
  1105. CALL TLAP13(NESP,MU,MUT,TSIGK,TSIGE,IGRKEP,
  1106. & MELEMC,MELEMF,MELEFL,ICHPSU,INORM,ICHPDI,ICHFL3,DELTA3)
  1107. ENDIF
  1108. C---------------------------------------------------------
  1109. C ET sur les chpoints
  1110. C---------------------------------------------------------
  1111. CALL ADCHPO(ICHFLU,ICHFL2,ICHTM1,1.D0,1.D0)
  1112. IF (ICHTM1.EQ.0) THEN
  1113. WRITE(IOIMP,*) 'Pas pu faire le ET des chpoints...'
  1114. GOTO 9999
  1115. ENDIF
  1116. IF(IKEPS .GT. 0) THEN
  1117. CALL ADCHPO(ICHTM1,ICHFL3,ICHTMP,1.D0,1.D0)
  1118. IF (ICHTMP.EQ.0) THEN
  1119. WRITE(IOIMP,*) 'Pas pu faire le ET des chpoints...'
  1120. GOTO 9999
  1121. ENDIF
  1122. ENDIF
  1123. CALL DTCHPO(ICHFLU)
  1124. CALL DTCHPO(ICHFL2)
  1125. IF(IKEPS .GT. 0) THEN
  1126. CALL DTCHPO(ICHFL3)
  1127. CALL DTCHPO(ICHTM1)
  1128. ICHFLU=ICHTMP
  1129. DELTAT=MIN(DELTAT,DELTA2)
  1130. ELSE
  1131. ICHFLU=ICHTM1
  1132. DELTAT=MIN(DELTAT,DELTA2)
  1133. ENDIF
  1134. ENDIF
  1135. IF(IERR .NE. 0)GOTO 9999
  1136. C
  1137. C**** Calcul de residu (si LOGRES = .TRUE.)
  1138. C
  1139. IF(LOGRES)THEN
  1140. TYPE = 'CHPOINT '
  1141. CALL KRCHP1(TYPE, MELEMC, ICHRES, MLDEFO)
  1142. IF(IERR.NE.0) GOTO 9999
  1143. C
  1144. CALL KONRE1(MELEMC,MELEMF,MELEFL,ICHPVO,
  1145. & ICHFLU, ICHRES,
  1146. & LOGAN,MESERR)
  1147. IF(LOGAN)THEN
  1148. C
  1149. C******* Anomalie detectée
  1150. C
  1151. C
  1152. C******* Message d'erreur standard
  1153. C -301 0
  1154. C %m1:40
  1155. C
  1156. MOTERR(1:40) = MESERR(1:40)
  1157. WRITE(IOIMP,*) MOTERR(1:40)
  1158. C
  1159. C******* Message d'erreur standard
  1160. C 5 3
  1161. C Erreur anormale.contactez votre support
  1162. C
  1163. CALL ERREUR(5)
  1164. GOTO 9999
  1165. ENDIF
  1166. ELSE
  1167. SEGSUP MLDEFO
  1168. ICHRES = 0
  1169. ENDIF
  1170. C
  1171. C**** Sortie
  1172. C
  1173. CALL ECRREE(DELTAT)
  1174. TYPE = 'CHPOINT '
  1175. * IF(ICHRES .NE. 0) CALL ECROBJ(TYPE,ICHRES)
  1176. * IF(ICHFLU .NE. 0) CALL ECROBJ(TYPE,ICHFLU)
  1177. CALL ECROBJ(TYPE,ICHRES)
  1178. TYPE='MATRIK '
  1179. CALL ECROBJ(TYPE,IJACO)
  1180. C
  1181. 9999 RETURN
  1182. END
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  

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