Télécharger cli252.eso

Retour à la liste

Numérotation des lignes :

cli252
  1. C CLI252 SOURCE OF166741 24/12/13 21:15:36 12097
  2. SUBROUTINE CLI252(NSP,MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM,
  3. & ICHPVO,ICHPSU,LRECP,LRECV,
  4. & IROC,IVITC,IPC,IYC,ICHLIM,ILIINC,ILIINP,IJAC,IJACO)
  5. C************************************************************************
  6. C
  7. C PROJET : CASTEM 2000
  8. C
  9. C NOM : CLI252
  10. C
  11. C DESCRIPTION : Subroutine appellée par CLIM22
  12. C Jacobian for 'OUTP '
  13. C
  14. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  15. C
  16. C AUTEUR : S. Kudriakov, DEN/DM2S/SFME/LTMF
  17. C
  18. C************************************************************************
  19. C
  20. C APPELES (Calcul) :
  21. C
  22. C************************************************************************
  23. C
  24. C HISTORIQUE (Anomalies et modifications éventuelles)
  25. C
  26. C HISTORIQUE :
  27. C
  28. C************************************************************************
  29. C
  30. IMPLICIT INTEGER(I-N)
  31. INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  32. & ,IGAMC,ICHLIM,ICEL,NFAC,IFAC,MELRES,IJACO
  33. & ,NGF,NGC,NLF,NLC,NLCB
  34. & ,ILIINC,ILIINP,IJAC,II,JJ
  35. & ,MP, NBEL, NBME, NBSOUS, NKID, NKMT, NMATRI, NP, NRIGE
  36. & ,NSP,I, IYC,J, LRECP,LRECV,KV
  37. REAL*8 VOLU,SURF,RC,PC,UXC,UYC,CNX,CNY,CTX,CTY
  38. & ,PF,COEF
  39. REAL*8 WVEC_L(4), WVEC_R(4), NVECT(2), TVECT(2)
  40. CHARACTER*(8) TYPE
  41.  
  42. -INC PPARAM
  43. -INC CCOPTIO
  44. -INC SMLMOTS
  45. -INC SMELEME
  46. POINTEUR MELEFC.MELEME
  47. -INC SMLENTI
  48. POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  49. -INC SMCHPOI
  50. POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL, MPRC.MPOVAL,
  51. & MPVC.MPOVAL, MPPC.MPOVAL, MPLIM.MPOVAL, MPYC.MPOVAL
  52. POINTEUR CELL.IZAFM
  53. C-------------------------------------------------------
  54. -INC SMLREEL
  55. POINTEUR MLRECP.MLREEL, MLRECV.MLREEL
  56. C-------------------------------------------------------
  57. C********* Les Jacobians ******************************
  58. C-------------------------------------------------------
  59. SEGMENT JACEL
  60. REAL*8 JAC(3+NSP,3+NSP)
  61. ENDSEGMENT
  62. POINTEUR JLL.JACEL,JPL.JACEL,JTL.JACEL,JTT.JACEL
  63. C-------------------------------------------------------------
  64. C******* Les fractionines massiques **************************
  65. C-------------------------------------------------------------
  66. SEGMENT FRAMAS
  67. REAL*8 YET(NSP)
  68. ENDSEGMENT
  69. POINTEUR YC.FRAMAS
  70. C-------------------------------------------------------
  71. C********** Les CP's and CV's ***********************
  72. C-------------------------------------------------------
  73. SEGMENT GCONST
  74. REAL*8 GC(NSP)
  75. ENDSEGMENT
  76. POINTEUR CP.GCONST, CV.GCONST
  77. C----------------------------------------------------
  78. C**** KRIPAD pour la correspondance global/local
  79. C----------------------------------------------------
  80. CALL KRIPAD(MELEMC,MLEMC)
  81. CALL KRIPAD(MELECB,MLEMCB)
  82. CALL KRIPAD(MELEMF,MLEMF)
  83. C----------------------------------------------------
  84. C**** CHPOINTs de la table DOMAINE
  85. C----------------------------------------------------
  86. CALL LICHT(INORM,MPNORM,TYPE,ICEL)
  87. CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
  88. CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
  89. C----------------------------------------------------
  90. C**** CHPOINTs des variables
  91. C----------------------------------------------------
  92. CALL LICHT(IROC,MPRC,TYPE,ICEL)
  93. CALL LICHT(IVITC,MPVC,TYPE,ICEL)
  94. CALL LICHT(IPC,MPPC,TYPE,ICEL)
  95. CALL LICHT(IYC,MPYC,TYPE,ICEL)
  96. CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
  97. C--------------------------------------------------------
  98. C**** Boucle sur le face pour le calcul des invariants de
  99. C Riemann et du flux
  100. C--------------------------------------------------------
  101. SEGACT MELEFC
  102. NFAC=MELEFC.NUM(/2)
  103. C---------------------------------
  104. C**** Objet MATRIK
  105. C---------------------------------
  106. NRIGE = 7
  107. NMATRI = 1
  108. NKID = 9
  109. NKMT = 7
  110. C---------------------------------
  111. SEGINI MATRIK
  112. IJACO = MATRIK
  113. MATRIK.IRIGEL(1,1) = MELRES
  114. MATRIK.IRIGEL(2,1) = MELRES
  115. C---------------------------------
  116. C**** Matrice non symetrique
  117. C---------------------------------
  118. MATRIK.IRIGEL(7,1) = 2
  119. C---------------------------------
  120. NBME = (3+NSP)*(3+NSP)
  121. NBSOUS = 1
  122. SEGINI IMATRI
  123. IF(IJAC.EQ.1)THEN
  124. MLMOTS=ILIINC
  125. ELSEIF(IJAC.EQ.2)THEN
  126. MLMOTS=ILIINP
  127. ENDIF
  128. SEGACT MLMOTS
  129. MATRIK.IRIGEL(4,1) = IMATRI
  130. C-------------------------------------------
  131. DO 1 J=1,(NSP+3)
  132. KV=(J-1)*(3+NSP)
  133. IMATRI.LISPRI(KV+1) = MLMOTS.MOTS(1)
  134. IMATRI.LISPRI(KV+2) = MLMOTS.MOTS(2)
  135. IMATRI.LISPRI(KV+3) = MLMOTS.MOTS(3)
  136. IMATRI.LISPRI(KV+4) = MLMOTS.MOTS(4)
  137. DO 2 I=1,(NSP-1)
  138. IMATRI.LISPRI(KV+4+I) = MLMOTS.MOTS(4+I)
  139. 2 CONTINUE
  140. 1 CONTINUE
  141. C-----------------------------------------------
  142. SEGDES MLMOTS
  143. MLMOTS=ILIINC
  144. SEGACT MLMOTS
  145. C-----------------------------------------------
  146. DO 3 J=1,(NSP+3)
  147. KV=(J-1)*(3+NSP)
  148. IMATRI.LISDUA(KV+1) = MLMOTS.MOTS(j)
  149. IMATRI.LISDUA(KV+2) = MLMOTS.MOTS(j)
  150. IMATRI.LISDUA(KV+3) = MLMOTS.MOTS(j)
  151. IMATRI.LISDUA(KV+4) = MLMOTS.MOTS(j)
  152. DO 4 I=1,(NSP-1)
  153. IMATRI.LISDUA(KV+4+I) = MLMOTS.MOTS(j)
  154. 4 CONTINUE
  155. 3 CONTINUE
  156. C-----------------------------------------------
  157. C-----------------------------------------------
  158. SEGDES MLMOTS
  159. NBEL = NFAC
  160. NBSOUS = 1
  161. NP = 1
  162. MP = 1
  163. C-----------------------------------------------------------
  164. C-----------------------------------------------------------
  165. DO 5 I=1,NBME
  166. SEGINI CELL
  167. IMATRI.LIZAFM(1,I) = CELL
  168. 5 CONTINUE
  169. C---------------------------------
  170. C**** Fin definition MATRIK
  171. C---------------------------------
  172. DO IFAC=1,NFAC,1
  173. NGF=MELEFC.NUM(1,IFAC)
  174. NGC=MELEFC.NUM(2,IFAC)
  175. NLF=MLEMF.LECT(NGF)
  176. NLC=MLEMC.LECT(NGC)
  177. NLCB=MLEMCB.LECT(NGF)
  178. VOLU=MPVOL.VPOCHA(NLC,1)
  179. SURF=MPSURF.VPOCHA(NLF,1)
  180. C In CASTEM les normales sont sortantes
  181. CNX=MPNORM.VPOCHA(NLF,1)
  182. CNY=MPNORM.VPOCHA(NLF,2)
  183. CTX=-1.0D0*CNY
  184. CTY=CNX
  185. C----------------------------------------------
  186. SEGINI CP, CV
  187. MLRECP = LRECP
  188. MLRECV = LRECV
  189. SEGACT MLRECP, MLRECV
  190. DO 10 I=1,(NSP-1)
  191. CP.GC(I)=MLRECP.PROG(I)
  192. CV.GC(I)=MLRECV.PROG(I)
  193. 10 CONTINUE
  194. CP.GC(NSP)=MLRECP.PROG(NSP)
  195. CV.GC(NSP)=MLRECV.PROG(NSP)
  196. C---------------------------------
  197. C Variables au centre
  198. C---------------------------------
  199. RC=MPRC.VPOCHA(NLC,1)
  200. PC=MPPC.VPOCHA(NLC,1)
  201. UXC=MPVC.VPOCHA(NLC,1)
  202. UYC=MPVC.VPOCHA(NLC,2)
  203. SEGINI YC
  204. SEGACT MPYC
  205. DO 100 I=1,(NSP-1)
  206. YC.YET(I)=MPYC.VPOCHA(NLC,I)
  207. 100 CONTINUE
  208. C---------------------------------
  209. C Variables à la face
  210. C---------------------------------
  211. PF=MPLIM.VPOCHA(NLCB,1)
  212. C------------------------------
  213. C******* Derivatives
  214. C------------------------------
  215. wvec_l(1)=RC
  216. wvec_l(2)=UXC
  217. wvec_l(3)=UYC
  218. wvec_l(4)=PC
  219. C--------------------------
  220. wvec_r(1)=RC
  221. wvec_r(2)=UXC
  222. wvec_r(3)=UYC
  223. wvec_r(4)=PF
  224. C--------------------------
  225. nvect(1)=CNX
  226. nvect(2)=CNY
  227. tvect(1)=CTX
  228. tvect(2)=CTY
  229. call copmsp(nsp,jpl,jll,wvec_l,wvec_r,nvect,tvect,
  230. & mpyc,lrecp,lrecv,nlc,nlc)
  231. C-----------------------------------------------
  232. COEF=-SURF/VOLU
  233. C----------------------------------------
  234. JTT=JLL
  235. JTL=JPL
  236. SEGACT JTT
  237. SEGACT JTL
  238. C----------------------------------------
  239. C----------------------------------------------------------------
  240. C******* Jacobian with respect to conservative variables
  241. C----------------------------------------------------------------
  242. IF(IJAC.EQ.1)THEN
  243. DO 9 II = 1,(3+NSP)
  244. DO 15 JJ = 1,(3+NSP)
  245. KV = (II-1)*(3+NSP)
  246. C----------------------------------
  247. CELL = IMATRI.LIZAFM(1,KV+JJ)
  248. CELL.AM(IFAC,1,1) = JTT.JAC(II,JJ)*COEF
  249. 15 CONTINUE
  250. 9 CONTINUE
  251. ELSEIF(IJAC.EQ.2)THEN
  252. DO 20 II = 1,(3+NSP)
  253. DO 25 JJ = 1,(3+NSP)
  254. KV = (II-1)*(3+NSP)
  255. C----------------------------------
  256. CELL = IMATRI.LIZAFM(1,KV+JJ)
  257. CELL.AM(IFAC,1,1) = JTL.JAC(II,JJ)*COEF
  258. 25 CONTINUE
  259. 20 CONTINUE
  260. ENDIF
  261. c--------------------------------------------------
  262. ENDDO
  263. C
  264. SEGDES MELEFC
  265. C
  266. SEGSUP MLEMC
  267. SEGSUP MLEMCB
  268. SEGSUP MLEMF
  269. C
  270. SEGDES MPNORM
  271. SEGDES MPVOL
  272. SEGDES MPSURF
  273. SEGDES MPRC
  274. SEGDES MPPC
  275. SEGDES MPVC
  276. SEGDES MPYC
  277. SEGDES MPLIM
  278. SEGDES YC
  279. c SEGDES YF
  280. SEGDES CP
  281. SEGDES CV
  282. SEGDES JTL
  283. SEGDES JTT
  284. c SEGDES WL
  285. c SEGDES DYDG1, DFRYG1,
  286. c & DG1DY, DGDYC
  287. SEGDES MATRIK
  288. DO 80 II=1,NBME
  289. CELL = IMATRI.LIZAFM(1,II)
  290. SEGDES CELL
  291. 80 CONTINUE
  292. SEGDES IMATRI
  293. C---------------------------------------------
  294. 9999 CONTINUE
  295. RETURN
  296. END
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  

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