Télécharger fimvf1.eso

Retour à la liste

Numérotation des lignes :

fimvf1
  1. C FIMVF1 SOURCE CB215821 20/11/25 13:28:55 10792
  2. SUBROUTINE FIMVF1
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : FIMVF1
  8. C
  9. C DESCRIPTION : Subroutine appellée par FIMPVF
  10. C
  11. C Modelisation 2D/3D des equations d'Euler
  12. C Gravité
  13. C
  14. C Calcul du flux/residu
  15. C
  16. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  17. C
  18. C AUTEUR : A. BECCANTINI, DEN/DM2S/SFME/LTMF
  19. C
  20. C************************************************************************
  21. C
  22. C*** SYNTAXE
  23. C
  24. C Discrétisation en VF "cell-centered" des équations d'Euler pour
  25. C un gaz parfait polytropique
  26. C Inconnues: densités, quantité de mouvement, énergie totale par
  27. C unité de volumes (variables conservatives)
  28. C Gravité
  29. C
  30. C RESU = 'FIMP' 'VF' 'GRAVMONO'
  31. C MOT1 LMOTC CHPRN CHPGN CHGRA ;
  32. C
  33. C MOT1 : MOT, 'RESI', 'JACOCONS'
  34. C
  35. C LMOTC : LISTMOTS, noms des variables conservatives
  36. C
  37. C CHPRN : densité (SPG = 'CENTRE', une seule
  38. C composante, 'SCAL')
  39. C
  40. C CHPGN : qdm (SPG = meme que CHPRN,
  41. C composantes: 'UX', 'UY', ('UZ'))
  42. C
  43. C CHPGRA : gravité (SPG = meme que CHPRN,
  44. C composantes: 'UX', 'UY', ('UZ'))
  45. C
  46. C
  47. C SORTIES
  48. C
  49. C RESU : residu ou matrice jacobienne
  50. C
  51. C
  52. C************************************************************************
  53. C
  54. C HISTORIQUE (Anomalies et modifications éventuelles)
  55. C
  56. C HISTORIQUE :
  57. C
  58. C************************************************************************
  59. IMPLICIT INTEGER(I-N)
  60. IMPLICIT REAL*8(A-H,O-Z)
  61.  
  62.  
  63. -INC PPARAM
  64. -INC CCOPTIO
  65. -INC SMLMOTS
  66. -INC SMCHPOI
  67. C
  68. INTEGER NBOPT, IMET, IRET, IRO, ICEN, INDIC, NBCOMP
  69. & , IROVIT, JGN, JGM, IGRAV, ILIINC, IJAC, IRES
  70. C
  71. PARAMETER (NBOPT=2)
  72. CHARACTER*8 LOPT(NBOPT)
  73. CHARACTER*4 MOT(1)
  74. C
  75. DATA LOPT/'RESI ','JACOCONS'/
  76. C
  77. C**** IMET = 1 -> residuu
  78. C IMET = 2 -> jacobienne
  79. C
  80. CALL LIRMOT(LOPT,NBOPT,IMET,1)
  81. IF(IERR.NE.0)GOTO 9999
  82. C
  83. C**** Noms de variables conservatives
  84. C
  85. CALL LIROBJ('LISTMOTS',ILIINC,1,IRET)
  86. IF(IERR .NE. 0) GOTO 9999
  87. MLMOTS = ILIINC
  88. SEGACT MLMOTS
  89. NBCOMP = MLMOTS.MOTS(/2)
  90. SEGDES MLMOTS
  91. IF(NBCOMP .NE. (IDIM+2))THEN
  92. MOTERR(1:40) = 'LISTINCO = ???'
  93. WRITE(IOIMP,*) MOTERR
  94. C
  95. C******* Message d'erreur standard
  96. C 21 2
  97. C Données incompatibles
  98. C
  99. CALL ERREUR(21)
  100. GOTO 9999
  101. ENDIF
  102. C
  103. C**** Densité
  104. C
  105. CALL LIROBJ('CHPOINT',IRO,1,IRET)
  106. IF (IERR.NE.0) GOTO 9999
  107. C
  108. C**** On cherche le pointeur de son maillage et on l'impose sur les
  109. C autres CHPOINT
  110. C
  111. MCHPOI = IRO
  112. SEGACT MCHPOI
  113. MSOUPO = MCHPOI.IPCHP(1)
  114. SEGACT MSOUPO
  115. ICEN = MSOUPO.IGEOC
  116. SEGDES MSOUPO
  117. SEGDES MCHPOI
  118. C
  119. C**** Control du CHPOINT: QUEPOI
  120. C
  121. INDIC = 1
  122. NBCOMP = 1
  123. MOT(1) = 'SCAL'
  124. CALL QUEPOI(IRO, ICEN, INDIC, NBCOMP, MOT)
  125. IF(IERR .NE. 0) GOTO 9999
  126. C
  127. C**** Lecture du CHPOINT DEBIT.
  128. C
  129. CALL LIROBJ('CHPOINT',IROVIT,1,IRET)
  130. IF (IERR.NE.0) GOTO 9999
  131. C
  132. C**** Control du CHPOINT
  133. C
  134. JGN = 4
  135. JGM = IDIM
  136. SEGINI MLMOTS
  137. MLMOTS.MOTS(1) = 'UX '
  138. MLMOTS.MOTS(2) = 'UY '
  139. IF(IDIM .EQ. 3) MLMOTS.MOTS(3) = 'UZ '
  140. CALL QUEPO1(IROVIT, ICEN, MLMOTS)
  141. IF(IERR .NE. 0) GOTO 9999
  142. C
  143. C
  144. C**** Lecture du CHPOINT GRAVITE.
  145. C
  146. CALL LIROBJ('CHPOINT',IGRAV,1,IRET)
  147. IF (IERR.NE.0) GOTO 9999
  148. C
  149. C**** Control du CHPOINT
  150. C
  151. CALL QUEPO1(IGRAV, ICEN, MLMOTS)
  152. IF(IERR .NE. 0) GOTO 9999
  153. SEGSUP MLMOTS
  154. C
  155. C**** Results
  156. C
  157. IF(IMET.EQ.1)THEN
  158. C
  159. C******* On calcule le residu
  160. C
  161. IJAC=0
  162. CALL FIMVF2(ILIINC,ICEN,IRO,IROVIT,IGRAV,IRES)
  163. ELSE
  164. IRES=0
  165. CALL FIMVF3(ILIINC,ICEN,IGRAV,IJAC)
  166. ENDIF
  167. C
  168. IF(IRES .NE. 0) CALL ECROBJ('CHPOINT ',IRES)
  169. IF(IJAC .NE. 0) CALL ECROBJ('MATRIK ',IJAC)
  170. C
  171. 9999 CONTINUE
  172. RETURN
  173. END
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  

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