Télécharger cli252.eso

Retour à la liste

Numérotation des lignes :

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

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