Télécharger prijac.eso

Retour à la liste

Numérotation des lignes :

prijac
  1. C PRIJAC SOURCE OF166741 24/12/13 21:17:13 12097
  2. SUBROUTINE PRIJAC
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : PRIJAC
  8. C
  9. C DESCRIPTION : Subroutine appellée par PRIMIT
  10. C
  11. C Modelisation 2D/3D des equations d'Euler
  12. C
  13. C Calcul du jacobien dCONS/dPRIM
  14. C
  15. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16. C
  17. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF
  18. C
  19. C************************************************************************
  20. C
  21. C APPELES (Calcul) : PRIJA1, PRIJA2
  22. C
  23. C************************************************************************
  24. C
  25. C*** SYNTAXE
  26. C
  27. C Discrétisation en VF "cell-centered" des équations d'Euler pour
  28. C un gaz parfait mono-constituent polytropique
  29. C
  30. C RMAT1 = 'PRIM' 'CONSPRIM' MAIL1 LMOT1 LMOT2
  31. C CHPO1 CHPO2 CHPO3 CHPO4 ;
  32. C
  33. C ENTREES
  34. C
  35. C LMOT1 : objet de type LISTMOTS
  36. C Noms de composantes des variable duales de RMAT1.
  37. C Il contient dans l'ordre suivant: le noms de la densité,
  38. C du momentum, de l'énergie totale par unité de volume
  39. C
  40. C LMOT2 : objet de type LISTMOTS
  41. C Noms de composantes des variable primales de RMAT1.
  42. C Il contient dans l'ordre suivant: le noms de la densité,
  43. C de la vitesse, de la pression.
  44. C
  45. C MAIL1 : SPG des CHPOINTS
  46. C
  47. C CHPO1 : CHPOINT contenant la masse volumique
  48. C (une seule composante, 'SCAL').
  49. C
  50. C CHPO2 : CHPOINT contenant la vitesse
  51. C (deux/trois composantes
  52. C 'UX', 'UY', 'UZ')
  53. C
  54. C CHPO3 : CHPOINT contenant la pression du gaz
  55. C (une seule composante,
  56. C 'SCAL').
  57. C
  58. C CHPO4 : CHPOINT contenant le "gamma" du gaz
  59. C (une seule composante,
  60. C 'SCAL').
  61. C
  62. C SORTIES
  63. C
  64. C RMAT1 : objet de type MATRIK
  65. C (SPG = TAB1 . 'CENTRE')
  66. C
  67. C************************************************************************
  68. C
  69. C HISTORIQUE (Anomalies et modifications éventuelles)
  70. C
  71. C HISTORIQUE :
  72. C
  73. C************************************************************************
  74. C
  75. IMPLICIT INTEGER(I-N)
  76.  
  77. -INC PPARAM
  78. -INC CCOPTIO
  79. -INC SMLMOTS
  80. -INC SMCHPOI
  81. -INC SMELEME
  82. POINTEUR MLMVIT.MLMOTS
  83. C
  84. INTEGER IRET, INDIC, NBCOMP, NESP, JGN, JGM
  85. & ,MELEMC
  86. & ,IJACO, ILIINC, ILIINP, NC
  87. & ,IRN, IVN, IPN, IGAMN
  88. C
  89. CHARACTER*8 TYPE
  90. CHARACTER*4 MOT
  91. CHARACTER*(40) MESERR
  92. C
  93. C*********************
  94. C**** Le SPG *********
  95. C*********************
  96. C
  97. TYPE='MAILLAGE'
  98. CALL LIROBJ(TYPE,MELEMC,1,IRET)
  99. IF(IERR .NE. 0)GOTO 9999
  100. C
  101. NESP=0
  102. C
  103. C**** La list des inconnues duales (variables conservatives)
  104. C
  105. TYPE='LISTMOTS'
  106. CALL LIROBJ(TYPE,ILIINC,1,IRET)
  107. IF(IERR .NE. 0) GOTO 9999
  108. MLMOTS = ILIINC
  109. SEGACT MLMOTS
  110. NC = MLMOTS.MOTS(/2)
  111. SEGDES MLMOTS
  112. IF(NC .NE. (IDIM+2+NESP))THEN
  113. MOTERR(1:40) = 'LISTINCO = ???'
  114. WRITE(IOIMP,*) MOTERR
  115. C
  116. C******* Message d'erreur standard
  117. C 21 2
  118. C Données incompatibles
  119. C
  120. CALL ERREUR(21)
  121. GOTO 9999
  122. ENDIF
  123. C
  124. C**** La list des inconnues primales (variables primitives)
  125. C
  126. TYPE='LISTMOTS'
  127. CALL LIROBJ(TYPE,ILIINP,1,IRET)
  128. IF(IERR .NE. 0) GOTO 9999
  129. MLMOTS = ILIINP
  130. SEGACT MLMOTS
  131. NC = MLMOTS.MOTS(/2)
  132. SEGDES MLMOTS
  133. IF(NC .NE. (IDIM+2+NESP))THEN
  134. MOTERR(1:40) = 'LISTINCO = ???'
  135. WRITE(IOIMP,*) MOTERR
  136. C
  137. C******* Message d'erreur standard
  138. C 21 2
  139. C Données incompatibles
  140. C
  141. CALL ERREUR(21)
  142. GOTO 9999
  143. ENDIF
  144. C
  145. C******* La densité au centre
  146. C
  147. TYPE = 'CHPOINT '
  148. CALL LIROBJ(TYPE,IRN,1,IRET)
  149. IF(IERR .NE. 0) GOTO 9999
  150. C
  151. C**** Control du CHPOINT: QUEPOI
  152. C
  153. C INDIC = 1 -> on impose le pointeur du support geometrique (ICEN)
  154. C N.B. Le CHPOINT peut changer de structure pour
  155. C avoir SPG = ICEN!!!!
  156. C INDIC = 0 -> on ne fait que verifier le support geometrique
  157. C (ICEN). Si le SPG sont differents INDIC = -4 en sortie
  158. C
  159. C NBCOMP > 0 -> numero des composantes
  160. C
  161. C MOT = ' ' obligatoire s'on connais pas les noms des composantes
  162. C
  163. INDIC = 1
  164. NBCOMP = 1
  165. MOT = 'SCAL'
  166. CALL QUEPOI(IRN, MELEMC, INDIC, NBCOMP, MOT)
  167. IF(IERR .NE. 0) GOTO 9999
  168. C
  169. C******* La vitesse au centre
  170. C
  171. TYPE = 'CHPOINT '
  172. CALL LIROBJ(TYPE,IVN,1,IRET)
  173. IF(IERR .NE. 0) GOTO 9999
  174. JGN = 4
  175. JGM = IDIM
  176. SEGINI MLMVIT
  177. MLMVIT.MOTS(1) = 'UX '
  178. MLMVIT.MOTS(2) = 'UY '
  179. IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ '
  180. CALL QUEPO1(IVN, MELEMC, MLMVIT)
  181. SEGSUP MLMVIT
  182. IF(IERR .NE. 0) GOTO 9999
  183. C
  184. C******* La pression au centre
  185. C
  186. TYPE = 'CHPOINT '
  187. CALL LIROBJ(TYPE,IPN,1,IRET)
  188. IF(IERR .NE. 0) GOTO 9999
  189. INDIC = 1
  190. NBCOMP = 1
  191. MOT = 'SCAL'
  192. CALL QUEPOI(IPN, MELEMC, INDIC, NBCOMP, MOT)
  193. IF(IERR .NE. 0) GOTO 9999
  194. C
  195. C******* Gamma au centre
  196. C
  197. TYPE = 'CHPOINT '
  198. CALL LIROBJ(TYPE,IGAMN,1,IRET)
  199. IF(IERR .NE. 0) GOTO 9999
  200. INDIC = 1
  201. NBCOMP = 1
  202. MOT = 'SCAL'
  203. CALL QUEPOI(IGAMN, MELEMC, INDIC, NBCOMP, MOT)
  204. IF(IERR .NE. 0) GOTO 9999
  205. C
  206. C******* Calcul du jacobien
  207. C
  208. IF(IDIM .EQ. 2)THEN
  209. CALL PRIJA1(MELEMC,ILIINC,ILIINP,IRN,IVN,IPN,IGAMN,IJACO)
  210. IF(IERR .NE. 0) GOTO 9999
  211. ELSE
  212. CALL PRIJA2(MELEMC,ILIINC,ILIINP,IRN,IVN,IPN,IGAMN,IJACO)
  213. IF(IERR .NE. 0) GOTO 9999
  214. ENDIF
  215. C
  216. C**** Ecriture des resultats
  217. C
  218. TYPE='MATRIK '
  219. CALL ECROBJ(TYPE,IJACO)
  220. 9999 CONTINUE
  221. RETURN
  222. END
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  

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