Télécharger pre12.eso

Retour à la liste

Numérotation des lignes :

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

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