Télécharger fimaxi.eso

Retour à la liste

Numérotation des lignes :

fimaxi
  1. C FIMAXI SOURCE OF166741 24/12/13 21:15:45 12097
  2. SUBROUTINE FIMAXI
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : FIMAXI
  8. C
  9. C DESCRIPTION : Subroutine appellée par FIMPVF
  10. C
  11. C Modelisation 2D axi du trem de pression
  12. C
  13. C Calcul du flux/residu
  14. C
  15. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16. C
  17. C AUTEUR : A. BECCANTINI, DEN/DM2S/SFME/LTMF
  18. C
  19. C************************************************************************
  20. C
  21. C*** SYNTAXE
  22. C
  23. C Discrétisation en VF "cell-centered" des équations d'Euler pour
  24. C un gaz parfait polytropique, axi
  25. C Inconnues: densités, quantité de mouvement, énergie totale par
  26. C unité de volumes (variables conservatives)
  27. C
  28. C First order
  29. C
  30. C RESU = 'FIMP' 'VF' 'AXI'
  31. C 'RESI' MODE LMOTC PN GRADP LIMP ;
  32. C
  33. C MODE : MODELE 'EULER'
  34. C
  35. C LMOTC : LISTMOTS, noms des variables conservatives
  36. C
  37. C PN : pression (SPG = 'CENTRE', une seule
  38. C composante, 'SCAL')
  39. C
  40. C GRADP : gradient (SPG = 'CENTRE', 2 composantes,
  41. C 'PX', 'PY')
  42. C
  43. C LIMP : limiteur (SPG = 'CENTRE', 1 composante,
  44. C 'P1')
  45. C
  46. C SORTIES
  47. C
  48. C RESU : residu
  49. C
  50. C
  51. C************************************************************************
  52. C
  53. C HISTORIQUE (Anomalies et modifications éventuelles)
  54. C
  55. C Created the 24/02/04
  56. C
  57. C
  58. C************************************************************************
  59. IMPLICIT INTEGER(I-N)
  60.  
  61. -INC PPARAM
  62. -INC CCOPTIO
  63. -INC SMLMOTS
  64. C
  65. INTEGER NBOPT, IMET, IRET, MMODEL, ICOND, IDOMA, ICEN
  66. & , IX2D, IY2D, ILIINC, IPN, IGPN, ILGPN, IRES, NBCOMP
  67. & , JGN, JGM, INEFMD, IS2D, IVOL
  68. C
  69. PARAMETER (NBOPT=2)
  70. CHARACTER*8 LOPT(NBOPT), TYPI
  71. CHARACTER*4 MOT1
  72. C
  73. DATA LOPT/'RESI ','JACOCONS'/
  74. C
  75. CALL LIRMOT(LOPT,NBOPT,IMET,1)
  76. IF(IERR.NE.0)GOTO 9999
  77. IF(IFOMOD .NE. 0)THEN
  78. C
  79. C******* Message d'erreur standard
  80. C 251 2
  81. C Tentative d'utilisation d'une option non implémentée
  82. C
  83. CALL ERREUR(251)
  84. GOTO 9999
  85. ENDIF
  86. C
  87. C**** IMET = 1 -> residuu
  88. C IMET = 2 -> jacobienne
  89. C
  90. IF(IMET .NE. 1)THEN
  91. C
  92. C******* Message d'erreur standard
  93. C 251 2
  94. C Tentative d'utilisation d'une option non implémentée
  95. C
  96. CALL ERREUR(251)
  97. GOTO 9999
  98. ENDIF
  99. C
  100. C**** Table domaine
  101. C
  102. ICOND=1
  103. CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET)
  104. IF(IERR.NE.0)GOTO 9999
  105. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  106. IF(IERR.NE.0)GOTO 9999
  107. C
  108. C**** Lecture du MELEME SPG des points CENTRE et
  109. C des centres 2D
  110. C
  111. CALL LEKTAB(IDOMA,'CENTRE',ICEN)
  112. IF(IERR .NE. 0) GO TO 9999
  113. TYPI='CHPOINT '
  114. CALL ACMO(IDOMA,'XCEN2D',TYPI,IX2D)
  115. IF(IERR .NE. 0) GO TO 9999
  116. CALL ACMO(IDOMA,'YCEN2D',TYPI,IY2D)
  117. IF(IERR .NE. 0) GO TO 9999
  118. CALL ACMO(IDOMA,'XXSUR2D',TYPI,IS2D)
  119. IF(IERR .NE. 0) GO TO 9999
  120. CALL ACMO(IDOMA,'XXVOLUM',TYPI,IVOL)
  121. IF(IERR .NE. 0) GO TO 9999
  122. C
  123. C**** Noms de variables conservatives
  124. C
  125. CALL LIROBJ('LISTMOTS',ILIINC,1,IRET)
  126. IF(IERR .NE. 0) GOTO 9999
  127. MLMOTS = ILIINC
  128. SEGACT MLMOTS
  129. NBCOMP = MLMOTS.MOTS(/2)
  130. IF(NBCOMP .NE. 4)THEN
  131. MOTERR(1:40) = 'LISTINCO = ???'
  132. WRITE(IOIMP,*) MOTERR
  133. C
  134. C******* Message d'erreur standard
  135. C 21 2
  136. C Données incompatibles
  137. C
  138. CALL ERREUR(21)
  139. GOTO 9999
  140. ELSE
  141. MOT1=MLMOTS.MOTS(2)
  142. ENDIF
  143. SEGDES MLMOTS
  144. C
  145. C**** Lecture de PN
  146. C
  147. CALL LIROBJ('CHPOINT ',IPN,1,IRET)
  148. IF(IERR .NE. 0) GOTO 9999
  149. C
  150. C**** Control du CHPOINT
  151. C
  152. JGN=4
  153. JGM=1
  154. SEGINI MLMOT1
  155. MLMOT1.MOTS(1)='SCAL'
  156. CALL QUEPO1(IPN, ICEN, MLMOT1)
  157. IF (IERR .NE. 0) GOTO 9999
  158. SEGDES MLMOT1
  159. C
  160. C**** Lecture de GPN
  161. C
  162. CALL LIROBJ('CHPOINT ',IGPN,1,IRET)
  163. IF(IERR .NE. 0) GOTO 9999
  164. C
  165. C**** Control du CHPOINT
  166. C
  167. JGN=4
  168. JGM=2
  169. SEGINI MLMOT2
  170. MLMOT2.MOTS(1)='P1DX'
  171. MLMOT2.MOTS(2)='P1DY'
  172. CALL QUEPO1(IGPN, ICEN, MLMOT2)
  173. IF (IERR .NE. 0) GOTO 9999
  174. SEGSUP MLMOT2
  175. C
  176. C**** Lecture de LGPN
  177. C
  178. CALL LIROBJ('CHPOINT ',ILGPN,1,IRET)
  179. IF(IERR .NE. 0) GOTO 9999
  180. C
  181. C**** Control du CHPOINT
  182. C
  183. SEGACT MLMOT1*MOD
  184. MLMOT1.MOTS(1)='P1 '
  185. CALL QUEPO1(ILGPN, ICEN, MLMOT1)
  186. IF (IERR .NE. 0) GOTO 9999
  187. SEGDES MLMOT1
  188. C
  189. C**** Creation of RESI
  190. C
  191. SEGACT MLMOT1*MOD
  192. TYPI='CENTRE '
  193. MLMOT1.MOTS(1)=MOT1
  194. CALL KRCHP1(TYPI,ICEN,IRES,MLMOT1)
  195. IF(IERR.NE.0) GOTO 9999
  196. C
  197. SEGSUP MLMOT1
  198. C
  199. C**** Computation of the residual
  200. C
  201. CALL FIMAX2(ICEN,IX2D,IY2D,IS2D,IVOL,IPN,IGPN,ILGPN,IRES)
  202. IF(IERR.NE.0) GOTO 9999
  203. C
  204. IF(IRES .NE. 0) CALL ECROBJ('CHPOINT',IRES)
  205. C
  206. 9999 CONTINUE
  207. RETURN
  208. END
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  

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