Télécharger pre12.eso

Retour à la liste

Numérotation des lignes :

pre12
  1. C PRE12 SOURCE OF166741 24/12/13 21:16:59 12097
  2. SUBROUTINE PRE12(ORDTEM)
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : PRE12
  8. C
  9. C DESCRIPTION : Voir PRE1
  10. C
  11. C Gas gaz ideal, mono espece.
  12. C
  13. C 2me ordre en espace (1er ou 2me ordre en temps)
  14. C
  15. C Creations des object MCHAML IROF, IVITF, IPF,
  16. C IGAMF
  17. C
  18. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  19. C
  20. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  21. C
  22. C************************************************************************
  23. C
  24. C
  25. C APPELES (Outils) : LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ,
  26. C QUEPOI, ECROBJ
  27. C
  28. C
  29. C APPELES (Calcul) : PRE121 (2D)
  30. C
  31. C
  32. C************************************************************************
  33. C
  34. C HISTORIQUE (Anomalies et modifications éventuelles)
  35. C
  36. C HISTORIQUE : Créée le 11.6.98.
  37. C
  38. C************************************************************************
  39. C
  40. C**** Les variables
  41. C
  42. IMPLICIT INTEGER(I-N)
  43. INTEGER ORDTEM, ICOND, IRETOU, IERR0, INDIC, NBCOMP
  44. & ,IDOMA, ICEN, IFACE, IFACEL, INORM
  45. & ,IROC, IGRROC, IALROC
  46. & ,IVITC, IGRVC, IALVC
  47. & ,IPC ,IGRPC, IALPC
  48. & ,IGAMC, IROF, IVITF, IPF, IGAMF, INEFMD, JGN, JGM
  49. & ,MMODEL
  50. REAL*8 VALER, VAL1, VAL2, DELTAT
  51. CHARACTER*(4) NOMTOT(9)
  52. CHARACTER*(8) MTYPR, TYPE
  53. CHARACTER*(40) MESERR
  54. LOGICAL LOGAN,LOGNEG, LOGBOR,LOGTEM
  55. C
  56. C**** Les Includes
  57. C
  58.  
  59. -INC PPARAM
  60. -INC CCOPTIO
  61. -INC SMLMOTS
  62. POINTEUR MLMVIT.MLMOTS
  63. C
  64. C
  65. C**** Initialisation des parametres d'erreur
  66. C
  67. LOGAN = .FALSE.
  68. LOGNEG = .FALSE.
  69. LOGBOR = .FALSE.
  70. MESERR = ' '
  71. MOTERR(1:40) = MESERR(1:40)
  72. VALER = 0.0D0
  73. VAL1 = 0.0D0
  74. VAL2 = 0.0D0
  75. C
  76. C**** Initialisation des NOMTOT
  77. C
  78. NOMTOT(1) = ' '
  79. NOMTOT(2) = ' '
  80. NOMTOT(3) = ' '
  81. NOMTOT(4) = ' '
  82. NOMTOT(5) = ' '
  83. NOMTOT(6) = ' '
  84. NOMTOT(7) = ' '
  85. NOMTOT(8) = ' '
  86. NOMTOT(9) = ' '
  87. C
  88. C**** Lecture de l'objet MODELE
  89. C
  90. ICOND = 1
  91. CALL QUETYP(TYPE,ICOND,IRETOU)
  92.  
  93. IF(IRETOU.EQ.0.AND.TYPE.NE.'MMODEL')THEN
  94. WRITE(6,*)' On attend un objet MMODEL'
  95. RETURN
  96. ENDIF
  97. CALL LIROBJ('MMODEL ',MMODEL,ICOND,IRETOU)
  98. CALL ACTOBJ('MMODEL ',MMODEL,1)
  99. IF(IERR.NE.0)GOTO 9999
  100. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  101. IF(IERR.NE.0)GOTO 9999
  102. C
  103. C**** Lecture du MELEME SPG des points CENTRE.
  104. C
  105. C
  106. C CALL LEKTAB(IDOMA,'CENTRE',IP)
  107. C
  108. C**** Probleme du LEKTAB: si IDOMA.'CENTRE' n'existe pas,
  109. C il crèe IDOMA.'CENTRE' sans recrèer 'FACEL'
  110. C -> la correspondance global des noeuds saut!
  111. C
  112. C On peut utilizer ACCTAB ou ACMO
  113. C
  114. MTYPR = 'MAILLAGE'
  115. CALL ACMO(IDOMA,'CENTRE',MTYPR,ICEN)
  116. IF(IERR.NE.0)GOTO 9999
  117. C
  118. C**** Lecture du MELEME 'FACE'
  119. C
  120. MTYPR = 'MAILLAGE'
  121. CALL ACMO(IDOMA,'FACE',MTYPR,IFACE)
  122. IF(IERR.NE.0)GOTO 9999
  123. C
  124. C**** Lecture du MELEME 'FACEL'
  125. C
  126. MTYPR = 'MAILLAGE'
  127. CALL ACMO(IDOMA,'FACEL',MTYPR,IFACEL)
  128. IF(IERR.NE.0)GOTO 9999
  129. C
  130. C**** Lecture du CHPOINT contenant les normales aux faces
  131. C
  132. IF(IDIM .EQ. 2)THEN
  133. C Que les normales
  134. CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
  135. IF(IERR .NE. 0) GOTO 9999
  136. JGN = 4
  137. JGM = 2
  138. SEGINI MLMVIT
  139. MLMVIT.MOTS(1) = 'UX '
  140. MLMVIT.MOTS(2) = 'UY '
  141. CALL QUEPO1(INORM, IFACE, MLMVIT)
  142. SEGSUP MLMVIT
  143. ELSE
  144. C Les normales et les tangentes
  145. MTYPR = ' '
  146. CALL ACMO(IDOMA,'MATROT',MTYPR,INORM)
  147. IF (MTYPR .NE. 'CHPOINT ') THEN
  148. CALL MATRAN(IDOMA,INORM)
  149. IF(IERR .NE. 0) GOTO 9999
  150. ENDIF
  151. JGN = 4
  152. JGM = 9
  153. SEGINI MLMVIT
  154. MLMVIT.MOTS(1) = 'UX '
  155. MLMVIT.MOTS(2) = 'UY '
  156. MLMVIT.MOTS(3) = 'UZ '
  157. MLMVIT.MOTS(4) = 'RX '
  158. MLMVIT.MOTS(5) = 'RY '
  159. MLMVIT.MOTS(6) = 'RZ '
  160. MLMVIT.MOTS(7) = 'MX '
  161. MLMVIT.MOTS(8) = 'MY '
  162. MLMVIT.MOTS(9) = 'MZ '
  163. CALL QUEPO1(INORM, IFACE, MLMVIT)
  164. SEGSUP MLMVIT
  165. IF(IERR .NE. 0) GOTO 9999
  166. ENDIF
  167. C
  168. C**** N.B. On veut lire les objets sequentiellement.
  169. C Donc on utilise QUETYP pour controler que
  170. C le type de l'objet soit le bon.
  171. C
  172. C**** Lecture du CHPOINT ROC
  173. C
  174. ICOND = 1
  175. CALL QUETYP(MTYPR,ICOND,IRETOU)
  176. IF(IERR .NE. 0)GOTO 9999
  177. IF(MTYPR .NE. 'CHPOINT ')THEN
  178. C
  179. C******* Message d'erreur standard
  180. C 37 2
  181. C On ne trouve pas d'objet de type %m1:8
  182. C
  183. MOTERR(1:8) = 'CHPOINT '
  184. CALL ERREUR(37)
  185. GOTO 9999
  186. ELSE
  187. ICOND = 1
  188. CALL LIROBJ(MTYPR,IROC,ICOND,IRETOU)
  189. CALL ACTOBJ(MTYPR,IROC,1)
  190. IF(IERR .NE. 0)GOTO 9999
  191. ENDIF
  192. C
  193. C**** Control du CHPOINT: QUEPOI
  194. C
  195. C INDIC = 1 -> on impose le pointeur du support geometrique (IM1)
  196. C INDIC = 0 -> on ne fait que verifier le support geometrique (IM1)
  197. C
  198. C NBCOMP > 0 -> numero des composantes
  199. C
  200. C NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
  201. C
  202. INDIC = 1
  203. NBCOMP = 1
  204. NOMTOT(1) = 'SCAL'
  205. CALL QUEPOI(IROC, ICEN, INDIC, NBCOMP, NOMTOT)
  206. IF(IERR .NE. 0)THEN
  207. IERR0 = IERR
  208.  
  209. C
  210. C******* Message d'erreur standard
  211. C -301 0 %m1:40
  212. C
  213. MOTERR(1:40) = 'CHPO1 = ??? '
  214. CALL ERREUR(-301)
  215.  
  216. GOTO 9999
  217. ENDIF
  218. C
  219. C**** Lecture du CHPOINT GRADROC
  220. C
  221. ICOND = 1
  222. CALL QUETYP(MTYPR,ICOND,IRETOU)
  223. IF(IERR .NE. 0)GOTO 9999
  224. IF(MTYPR .NE. 'CHPOINT ')THEN
  225. C
  226. C******* Message d'erreur standard
  227. C 37 2
  228. C On ne trouve pas d'objet de type %m1:8
  229. C
  230. MOTERR(1:8) = 'CHPOINT '
  231. CALL ERREUR(37)
  232. GOTO 9999
  233. ELSE
  234. ICOND = 1
  235. CALL LIROBJ(MTYPR,IGRROC,ICOND,IRETOU)
  236. CALL ACTOBJ(MTYPR,IGRROC,1)
  237. IF (IERR.NE.0) GOTO 9999
  238. ENDIF
  239. C
  240. C**** Control du CHPOINT: QUEPOI
  241. C
  242. C INDIC = 1 -> on impose le pointeur du support geometrique (IM1)
  243. C INDIC = 0 -> on ne fait que verifier le support geometrique (IM1)
  244. C
  245. C NBCOMP = 2 -> on teste le noms des composantes
  246. C
  247. C NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
  248. C
  249. INDIC = 1
  250. NBCOMP = IDIM
  251. NOMTOT(1) = 'P1DX'
  252. NOMTOT(2) = 'P1DY'
  253. IF(IDIM .EQ. 3) NOMTOT(3) = 'P1DZ'
  254. CALL QUEPOI(IGRROC, ICEN, INDIC, NBCOMP, NOMTOT)
  255. IF(IERR .NE. 0)THEN
  256. IERR0 = IERR
  257.  
  258. C
  259. C******* Message d'erreur standard
  260. C -301 0 %m1:40
  261. C
  262. MOTERR(1:40) = 'CHPO2 = ??? '
  263. CALL ERREUR(-301)
  264.  
  265. GOTO 9999
  266. ENDIF
  267. C
  268. C**** Lecture du CHPOINT IALROC
  269. C
  270. ICOND = 1
  271. CALL QUETYP(MTYPR,ICOND,IRETOU)
  272. IF(IERR .NE. 0)GOTO 9999
  273. IF(MTYPR .NE. 'CHPOINT ')THEN
  274. C
  275. C******* Message d'erreur standard
  276. C 37 2
  277. C On ne trouve pas d'objet de type %m1:8
  278. C
  279. MOTERR(1:8) = 'CHPOINT '
  280. CALL ERREUR(37)
  281. GOTO 9999
  282. ELSE
  283. ICOND = 1
  284. CALL LIROBJ(MTYPR,IALROC,ICOND,IRETOU)
  285. CALL ACTOBJ(MTYPR,IALROC,1)
  286. IF (IERR.NE.0) GOTO 9999
  287. ENDIF
  288. C
  289. C**** Control du CHPOINT: QUEPOI
  290. C
  291. INDIC = 1
  292. NBCOMP = 1
  293. NOMTOT(1) = 'P1'
  294. CALL QUEPOI(IALROC, ICEN, INDIC, NBCOMP, NOMTOT)
  295. IF(IERR .NE. 0)THEN
  296. IERR0 = IERR
  297.  
  298. C
  299. C******* Message d'erreur standard
  300. C -301 0 %m1:40
  301. C
  302. MOTERR(1:40) = 'CHPO3 = ??? '
  303. CALL ERREUR(-301)
  304.  
  305. GOTO 9999
  306. ENDIF
  307. C
  308. C
  309. C**** Lecture du CHPOINT VITC
  310. C
  311. ICOND = 1
  312. CALL QUETYP(MTYPR,ICOND,IRETOU)
  313. IF(IERR .NE. 0)GOTO 9999
  314. IF(MTYPR .NE. 'CHPOINT ')THEN
  315. C
  316. C******* Message d'erreur standard
  317. C 37 2
  318. C On ne trouve pas d'objet de type %m1:8
  319. C
  320. MOTERR(1:8) = 'CHPOINT '
  321. CALL ERREUR(37)
  322. GOTO 9999
  323. ELSE
  324. ICOND = 1
  325. CALL LIROBJ(MTYPR,IVITC,ICOND,IRETOU)
  326. CALL ACTOBJ(MTYPR,IVITC,1)
  327. IF (IERR.NE.0) GOTO 9999
  328. ENDIF
  329. C
  330. C**** Control du CHPOINT
  331. C
  332. INDIC = 1
  333. NBCOMP = IDIM
  334. NOMTOT(1) = 'UX '
  335. NOMTOT(2) = 'UY '
  336. IF(IDIM .EQ. 3) NOMTOT(3) = 'UZ '
  337. CALL QUEPOI(IVITC, ICEN, INDIC, NBCOMP, NOMTOT)
  338. IF(IERR .NE. 0)THEN
  339. IERR0 = IERR
  340.  
  341. C
  342. C******* Message d'erreur standard
  343. C -301 0 %m1:40
  344. C
  345. MOTERR(1:40) = 'CHPO4 = ??? '
  346. CALL ERREUR(-301)
  347.  
  348. GOTO 9999
  349. ENDIF
  350. C
  351. C**** Lecture du CHPOINT GRADVITC
  352. C
  353. ICOND = 1
  354. CALL QUETYP(MTYPR,ICOND,IRETOU)
  355. IF(IERR .NE. 0)GOTO 9999
  356. IF(MTYPR .NE. 'CHPOINT ')THEN
  357. C
  358. C******* Message d'erreur standard
  359. C 37 2
  360. C On ne trouve pas d'objet de type %m1:8
  361. C
  362. MOTERR(1:8) = 'CHPOINT '
  363. CALL ERREUR(37)
  364. GOTO 9999
  365. ELSE
  366. ICOND = 1
  367. CALL LIROBJ(MTYPR,IGRVC,ICOND,IRETOU)
  368. CALL ACTOBJ(MTYPR,IGRVC,1)
  369. IF (IERR.NE.0) GOTO 9999
  370. ENDIF
  371. C
  372. C**** Control du CHPOINT: QUEPOI
  373. C
  374. INDIC = 1
  375. IF(IDIM .EQ.2)THEN
  376. NBCOMP = 4
  377. NOMTOT(1) = 'P1DX'
  378. NOMTOT(2) = 'P1DY'
  379. NOMTOT(3) = 'P2DX'
  380. NOMTOT(4) = 'P2DY'
  381. ELSE
  382. NBCOMP = 9
  383. NOMTOT(1) = 'P1DX'
  384. NOMTOT(2) = 'P1DY'
  385. NOMTOT(3) = 'P1DZ'
  386. NOMTOT(4) = 'P2DX'
  387. NOMTOT(5) = 'P2DY'
  388. NOMTOT(6) = 'P2DZ'
  389. NOMTOT(7) = 'P3DX'
  390. NOMTOT(8) = 'P3DY'
  391. NOMTOT(9) = 'P3DZ'
  392. ENDIF
  393. CALL QUEPOI(IGRVC, ICEN, INDIC, NBCOMP, NOMTOT)
  394. IF(IERR .NE. 0)THEN
  395. IERR0 = IERR
  396.  
  397. C
  398. C******* Message d'erreur standard
  399. C -301 0 %m1:40
  400. C
  401. MOTERR(1:40) = 'CHPO5 = ??? '
  402. CALL ERREUR(-301)
  403.  
  404. GOTO 9999
  405. ENDIF
  406. C
  407. C**** Lecture du CHPOINT IALVC
  408. C
  409. ICOND = 1
  410. CALL QUETYP(MTYPR,ICOND,IRETOU)
  411. IF(IERR .NE. 0)GOTO 9999
  412. IF(MTYPR .NE. 'CHPOINT ')THEN
  413. C
  414. C******* Message d'erreur standard
  415. C 37 2
  416. C On ne trouve pas d'objet de type %m1:8
  417. C
  418. MOTERR(1:8) = 'CHPOINT '
  419. CALL ERREUR(37)
  420. GOTO 9999
  421. ELSE
  422. ICOND = 1
  423. CALL LIROBJ(MTYPR,IALVC,ICOND,IRETOU)
  424. CALL ACTOBJ(MTYPR,IALVC,1)
  425. IF (IERR.NE.0) GOTO 9999
  426. ENDIF
  427. C
  428. C**** Control du CHPOINT: QUEPOI
  429. C
  430. INDIC = 1
  431. NBCOMP = IDIM
  432. NOMTOT(1) = 'P1'
  433. NOMTOT(2) = 'P2'
  434. IF(IDIM .EQ. 3) NOMTOT(3) = 'P3 '
  435. CALL QUEPOI(IALVC, ICEN, INDIC, NBCOMP, NOMTOT)
  436. IF(IERR .NE. 0)THEN
  437. IERR0 = IERR
  438.  
  439. C
  440. C******* Message d'erreur standard
  441. C -301 0 %m1:40
  442. C
  443. MOTERR(1:40) = 'CHPO6 = ??? '
  444. CALL ERREUR(-301)
  445.  
  446. GOTO 9999
  447. ENDIF
  448. C
  449. C**** Lecture du CHPOINT PC
  450. C
  451. ICOND = 1
  452. CALL QUETYP(MTYPR,ICOND,IRETOU)
  453. IF(IERR .NE. 0)GOTO 9999
  454. IF(MTYPR .NE. 'CHPOINT ')THEN
  455. C
  456. C******* Message d'erreur standard
  457. C 37 2
  458. C On ne trouve pas d'objet de type %m1:8
  459. C
  460. MOTERR(1:8) = 'CHPOINT '
  461. CALL ERREUR(37)
  462. GOTO 9999
  463. ELSE
  464. ICOND = 1
  465. CALL LIROBJ(MTYPR,IPC,ICOND,IRETOU)
  466. CALL ACTOBJ(MTYPR,IPC,1)
  467. IF (IERR.NE.0) GOTO 9999
  468. ENDIF
  469. C
  470. C**** Control du CHPOINT
  471. C
  472. INDIC = 1
  473. NBCOMP = 1
  474. NOMTOT(1) = 'SCAL'
  475. CALL QUEPOI(IPC, ICEN, INDIC, NBCOMP, NOMTOT)
  476. IF(IERR .NE. 0)THEN
  477. IERR0 = IERR
  478.  
  479. C
  480. C******* Message d'erreur standard
  481. C -301 0 %m1:40
  482. C
  483. MOTERR(1:40) = 'CHPO7 = ??? '
  484. CALL ERREUR(-301)
  485.  
  486. GOTO 9999
  487. ENDIF
  488. C
  489. C**** Lecture du CHPOINT GRADPC
  490. C
  491. ICOND = 1
  492. CALL QUETYP(MTYPR,ICOND,IRETOU)
  493. IF(IERR .NE. 0)GOTO 9999
  494. IF(MTYPR .NE. 'CHPOINT ')THEN
  495. C
  496. C******* Message d'erreur standard
  497. C 37 2
  498. C On ne trouve pas d'objet de type %m1:8
  499. C
  500. MOTERR(1:8) = 'CHPOINT '
  501. CALL ERREUR(37)
  502. GOTO 9999
  503. ELSE
  504. ICOND = 1
  505. CALL LIROBJ(MTYPR,IGRPC,ICOND,IRETOU)
  506. CALL ACTOBJ(MTYPR,IGRPC,1)
  507. IF (IERR.NE.0) GOTO 9999
  508. ENDIF
  509. C
  510. C**** Control du CHPOINT: QUEPOI
  511. C
  512. C
  513. INDIC = 1
  514. NBCOMP = IDIM
  515. NOMTOT(1) = 'P1DX'
  516. NOMTOT(2) = 'P1DY'
  517. IF( IDIM .EQ. 3) NOMTOT(3) = 'P1DZ'
  518. CALL QUEPOI(IGRPC, ICEN, INDIC, NBCOMP, NOMTOT)
  519. IF(IERR .NE. 0)THEN
  520. IERR0 = IERR
  521.  
  522. C
  523. C******* Message d'erreur standard
  524. C -301 0 %m1:40
  525. C
  526. MOTERR(1:40) = 'CHPO8 = ??? '
  527. CALL ERREUR(-301)
  528.  
  529. GOTO 9999
  530. ENDIF
  531. C
  532. C**** Lecture du CHPOINT IALPC
  533. C
  534. ICOND = 1
  535. CALL QUETYP(MTYPR,ICOND,IRETOU)
  536. IF(IERR .NE. 0)GOTO 9999
  537. IF(MTYPR .NE. 'CHPOINT ')THEN
  538. C
  539. C******* Message d'erreur standard
  540. C 37 2
  541. C On ne trouve pas d'objet de type %m1:8
  542. C
  543. MOTERR(1:8) = 'CHPOINT '
  544. CALL ERREUR(37)
  545. GOTO 9999
  546. ELSE
  547. ICOND = 1
  548. CALL LIROBJ(MTYPR,IALPC,ICOND,IRETOU)
  549. CALL ACTOBJ(MTYPR,IALPC,1)
  550. IF (IERR.NE.0) GOTO 9999
  551. ENDIF
  552. C
  553. C**** Control du CHPOINT: QUEPOI
  554. C
  555. INDIC = 1
  556. NBCOMP = 1
  557. NOMTOT(1) = 'P1'
  558. CALL QUEPOI(IALPC, ICEN, INDIC, NBCOMP, NOMTOT)
  559. IF(IERR .NE. 0)THEN
  560. IERR0 = IERR
  561.  
  562. C
  563. C******* Message d'erreur standard
  564. C -301 0 %m1:40
  565. C
  566. MOTERR(1:40) = 'CHPO9 = ??? '
  567. CALL ERREUR(-301)
  568.  
  569. GOTO 9999
  570. ENDIF
  571. C
  572. C**** Lecture du CHPOINT GAMC
  573. C
  574. ICOND = 1
  575. CALL QUETYP(MTYPR,ICOND,IRETOU)
  576. IF(IERR .NE. 0)GOTO 9999
  577. IF(MTYPR .NE. 'CHPOINT ')THEN
  578. C
  579. C******* Message d'erreur standard
  580. C 37 2
  581. C On ne trouve pas d'objet de type %m1:8
  582. C
  583. MOTERR(1:8) = 'CHPOINT '
  584. CALL ERREUR(37)
  585. GOTO 9999
  586. ELSE
  587. ICOND = 1
  588. CALL LIROBJ(MTYPR,IGAMC,ICOND,IRETOU)
  589. CALL ACTOBJ(MTYPR,IGAMC,1)
  590. IF (IERR.NE.0) GOTO 9999
  591. ENDIF
  592. C
  593. C**** Control du CHPOINT
  594. C
  595. INDIC = 1
  596. NBCOMP = 1
  597. NOMTOT(1) = 'SCAL'
  598. CALL QUEPOI(IGAMC, ICEN, INDIC, NBCOMP, NOMTOT)
  599. IF(IERR .NE. 0)THEN
  600. IERR0 = IERR
  601.  
  602. C
  603. C******* Message d'erreur standard
  604. C -301 0 %m1:40
  605. C
  606. MOTERR(1:40) = 'CHPO10 = ??? '
  607. CALL ERREUR(-301)
  608.  
  609. GOTO 9999
  610. ENDIF
  611. IF(ORDTEM .EQ. 1)THEN
  612. C
  613. C******* Deux Dimensions, Une Espece, 2er ordre en espace, 1er ordre en
  614. C temps
  615. C
  616. LOGTEM = .FALSE.
  617. DELTAT = 0.0D0
  618. ELSE
  619. LOGTEM = .TRUE.
  620. ICOND = 1
  621. CALL LIRREE(DELTAT,ICOND,IRETOU)
  622. IF(IERR .NE. 0)GOTO 9999
  623. ENDIF
  624. IF(IDIM .EQ. 2)THEN
  625. C
  626. C******* Deux Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
  627. C temps
  628. C
  629. CALL PRE121(LOGTEM,
  630. & ICEN,IFACE,IFACEL,INORM,
  631. & IROC, IGRROC, IALROC,
  632. & IVITC, IGRVC, IALVC,
  633. & IPC ,IGRPC, IALPC,
  634. & IGAMC,
  635. & DELTAT,
  636. & IROF,IVITF,IPF,IGAMF,
  637. & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
  638. ELSE
  639. C
  640. C******* Trois Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
  641. C temps
  642. C
  643. CALL PRE122(LOGTEM,
  644. & ICEN,IFACE,IFACEL,INORM,
  645. & IROC, IGRROC, IALROC,
  646. & IVITC, IGRVC, IALVC,
  647. & IPC ,IGRPC, IALPC,
  648. & IGAMC,
  649. & DELTAT,
  650. & IROF,IVITF,IPF,IGAMF,
  651. & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
  652. ENDIF
  653. C
  654. C
  655. C**** Messages d'erreur
  656. C
  657. IF(LOGAN)THEN
  658. C
  659. C******* Anomalie detectée
  660. C
  661. C
  662. C******* Message d'erreur standard
  663. C -301 0
  664. C %m1:40
  665. C
  666. MOTERR(1:40) = MESERR(1:40)
  667. CALL ERREUR(-301)
  668. C
  669. C******* Message d'erreur standard
  670. C 5 3
  671. C Erreur anormale.contactez votre support
  672. C
  673. CALL ERREUR(5)
  674. GOTO 9999
  675. C
  676. ELSEIF(LOGNEG)THEN
  677. C
  678. C******* Message d'erreur standard
  679. C 41 2
  680. C %m1:8 = %r1 inférieur à %r2
  681. C
  682. MOTERR(1:8) = MESERR(1:8)
  683. REAERR(1) = REAL(VALER)
  684. REAERR(2) = 0.0
  685. CALL ERREUR(41)
  686. GOTO 9999
  687. ELSEIF(LOGBOR)THEN
  688. C
  689. C******* Message d'erreur standard
  690. C 42 2
  691. C %m1:8 = %r1 non compris entre %r2 et %r3
  692. C
  693. MOTERR(1:8) = MESERR(1:8)
  694. REAERR(1) = REAL(VALER)
  695. REAERR(2) = REAL(VAL1)
  696. REAERR(3) = REAL(VAL2)
  697. CALL ERREUR(42)
  698. GOTO 9999
  699. ELSE
  700. C
  701. C******* Ecriture de ROF, VITF, PF
  702. C
  703. MTYPR = 'MCHAML '
  704. CALL ACTOBJ(MTYPR,IGAMF,1)
  705. CALL ACTOBJ(MTYPR,IPF,1)
  706. CALL ACTOBJ(MTYPR,IVITF,1)
  707. CALL ACTOBJ(MTYPR,IROF,1)
  708.  
  709. CALL ECROBJ(MTYPR,IGAMF)
  710. CALL ECROBJ(MTYPR,IPF)
  711. CALL ECROBJ(MTYPR,IVITF)
  712. CALL ECROBJ(MTYPR,IROF)
  713. ENDIF
  714. C
  715. 9999 CONTINUE
  716.  
  717. END
  718.  
  719.  
  720.  
  721.  

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