Télécharger zlap1c.eso

Retour à la liste

Numérotation des lignes :

zlap1c
  1. C ZLAP1C SOURCE CB215821 20/11/25 13:45:06 10792
  2. SUBROUTINE ZLAP1C(PROPHY,PROPH2,MPROC,MPTEMC,
  3. $ MPVOLU,MPNORM,MPSURF,MELEFL,
  4. $ KRFACE,KRCENT,
  5. $ LCLIMR,KRRIMP,MPRIMP,
  6. $ LCLIMT,KRTIMP,MPTIMP,
  7. $ NOMINC,
  8. $ IJACO,
  9. $ IMPR,IRET)
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8 (A-H,O-Z)
  12. C***********************************************************************
  13. C NOM : ZLAP1C
  14. C DESCRIPTION : Calcul de la matrice jacobienne du résidu du laplacien
  15. C VF 2D (termes multi-espèces).
  16. C Ici, on ne calcule que les contributions à la matrice
  17. C jacobienne faisant intervenir les coefficients pour le
  18. C calcul des gradients de Yk
  19. C (contributions à d Res_{\rho e_t} / d var
  20. C var prenant successivement les valeurs :
  21. C \rho, \rho Yk)
  22. C
  23. C
  24. C
  25. C
  26. C LANGAGE : ESOPE
  27. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  28. C mél : gounand@semt2.smts.cea.fr
  29. C***********************************************************************
  30. C APPELES (UTIL) : AJMTK : ajoute un objet de type MATSIM (non
  31. C standard) à un objet de type MATRIK.
  32. C APPELE PAR : ZLAP1A : Calcul de la matrice jacobienne du
  33. C résidu du laplacien VF 2D.
  34. C***********************************************************************
  35. C ENTREES : PROPHY (type PROPHY) : propriétés des espèces
  36. C PROPH2 (type PROPH2) : précond. de PROPHY
  37. C MPROC (type MPOVAL) : masse volumique par
  38. C élément.
  39. C MPVOLU (type MPOVAL) : volume des éléments.
  40. C MPNORM (type MPOVAL) : normale aux faces.
  41. C MPSURF (type MPOVAL) : surface des faces.
  42. C MELEFL (type MELEME) : connectivités face-(centre
  43. C gauche, centre droit).
  44. C KRFACE (type MLENTI) : tableau de repérage dans
  45. C le maillage des faces des éléments.
  46. C KRCENT (type MLENTI) : tableau de repérage dans
  47. C le maillage des centres des éléments.
  48. C NOMINC (type MLMOTS) : noms des inconnues.
  49. C LCLIMR (type logique) : .TRUE. => CL de Dirichlet
  50. C sur la densité.
  51. C KRRIMP (type MLENTI) : tableau de repérage dans
  52. C maillage des CL de Dirichlet sur la densité.
  53. C MPRIMP (type MPOVAL) : valeurs des CL de
  54. C Dirichlet sur la densité.
  55. C LCLIMT (type logique) : .TRUE. => CL de Dirichlet
  56. C sur la température.
  57. C KRTIMP (type MLENTI) : tableau de repérage dans
  58. C maillage des CL de Dirichlet sur la température.
  59. C MPTIMP (type MPOVAL) : valeurs des CL de
  60. C Dirichlet sur la température.
  61. C ENTREES/SORTIES : IJACO (type MATRIK) : matrice jacobienne du
  62. C résidu du laplacien VF 2D.
  63. C SORTIES : -
  64. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  65. C***********************************************************************
  66. C VERSION : v1, 25/02/2002, version initiale
  67. C HISTORIQUE : v1, 25/02/2002, création
  68. C HISTORIQUE :
  69. C HISTORIQUE :
  70. C***********************************************************************
  71. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  72. C en cas de modification de ce sous-programme afin de faciliter
  73. C la maintenance !
  74. C***********************************************************************
  75.  
  76. -INC PPARAM
  77. -INC CCOPTIO
  78. -INC SMCOORD
  79. -INC SMCHPOI
  80. POINTEUR MPDKC.MPOVAL,MPDNC.MPOVAL
  81. POINTEUR MPROC.MPOVAL,MPTEMC.MPOVAL,MPYKC.MPOVAL
  82. POINTEUR MPRIMP.MPOVAL,MPTIMP.MPOVAL
  83. POINTEUR MPSURF.MPOVAL,MPNORM.MPOVAL,MPVOLU.MPOVAL
  84. -INC SMCHAML
  85. POINTEUR ICOGRY.MCHELM,JCOGRY.MCHAML
  86. POINTEUR KDYKDX.MELVAL,KDYKDY.MELVAL
  87. -INC SMELEME
  88. POINTEUR MELEFL.MELEME
  89. POINTEUR MCOGRY.MELEME
  90. -INC SMLENTI
  91. POINTEUR KRYIMP.MLENTI,KRRIMP.MLENTI,KRTIMP.MLENTI
  92. POINTEUR KRCENT.MLENTI,KRFACE.MLENTI
  93. -INC SMLMOTS
  94. POINTEUR NOMINC.MLMOTS
  95. POINTEUR IJACO.MATRIK
  96. INTEGER NESP,IESP
  97. SEGMENT PROPHY
  98. CHARACTER*4 NOMESP(NESP+1)
  99. REAL*8 CV(NESP+1)
  100. REAL*8 R(NESP+1)
  101. REAL*8 H0K(NESP+1)
  102. POINTEUR CDIFF(NESP+1).MCHPOI
  103. POINTEUR YK(NESP+1).MCHPOI
  104. POINTEUR GRADYK(NESP+1).MCHPOI
  105. POINTEUR CGRYK(NESP+1).MCHELM
  106. POINTEUR CLYK(NESP+1).MCHPOI
  107. ENDSEGMENT
  108. SEGMENT PROPH2
  109. POINTEUR MPDIFF(NESP+1).MPOVAL
  110. POINTEUR MPVALY(NESP+1).MPOVAL
  111. POINTEUR MPGRAD(NESP+1).MPOVAL
  112. LOGICAL LCLIM(NESP+1)
  113. POINTEUR KRCLIM(NESP+1).MLENTI
  114. ENDSEGMENT
  115. *
  116. * Objet matrice élémentaire simplifié
  117. *
  118. SEGMENT GMATSI
  119. INTEGER POIPR1(NPP1,NEL1)
  120. INTEGER POIDU1(1,NEL1)
  121. INTEGER POIPR2(NPP2,NEL2)
  122. INTEGER POIDU2(2,NEL2)
  123. POINTEUR LMATSI(0).MATSIM
  124. ENDSEGMENT
  125. * Contributions de la part du gradient de YK (CTGRY)
  126. POINTEUR CTGRY.GMATSI
  127. SEGMENT MATSIM
  128. CHARACTER*8 NOMPRI,NOMDUA
  129. REAL*8 VALMA1(1,NPP1,NEL1)
  130. REAL*8 VALMA2(2,NPP2,NEL2)
  131. ENDSEGMENT
  132. POINTEUR RETRHO.MATSIM
  133. POINTEUR RETRYK.MATSIM
  134. *
  135. REAL*8 DKG,DKD,DKF,DNG,DND,DNF
  136. REAL*8 RHOG,RHOD,RHOF
  137. REAL*8 TEMG,TEMD,TEMF
  138. *
  139. INTEGER IMPR,IRET
  140. *
  141. LOGICAL LCLIMY,LCLIMT,LCLIMR
  142. LOGICAL LMUR
  143. LOGICAL LCTRB2
  144. *
  145. INTEGER IELEM,IPD,IPP,ISOUCH,IEL1,IEL2
  146. INTEGER NELEM,NPD,NPP,NSOUCH,NEL1,NEL2,NPP1,NPP2
  147. INTEGER NGCDRO,NGCGAU,NGFACE,NPPRIM,NPDUAL
  148. INTEGER NLCENP,NLCEND,NLFACE,NLCLY,NLFRI,NLFTI
  149. INTEGER NPTEL
  150. *
  151. REAL*8 BETAX,BETAY,CNX,CNY
  152. REAL*8 SIGNOR,SURFFA,VOLUEL
  153. REAL*8 RHOP,YKP
  154. REAL*8 CPK,HKF,CPN,HNF
  155. REAL*8 FACTOR
  156. REAL*8 DYKDRO,DYKDRY
  157. *
  158. INTEGER ICOORX,NLCGAU,NLCDRO
  159. REAL*8 XF,YF,XG,YG,XFMXG,YFMYG,DRG
  160. & ,XD,YD,XFMXD,YFMYD,DRD,ALPHA,UMALPH
  161. C
  162. *
  163. * Executable statements
  164. *
  165. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans zlap1c.eso'
  166. SEGACT PROPHY
  167. NESP=PROPHY.CV(/1)-1
  168. SEGACT PROPH2
  169. MPDNC=PROPH2.MPDIFF(NESP+1)
  170. SEGACT MPDNC
  171. DO IESP=1,NESP
  172. IF (LCLIMR) THEN
  173. SEGACT KRRIMP
  174. SEGACT MPRIMP
  175. ENDIF
  176. IF (LCLIMT) THEN
  177. SEGACT KRTIMP
  178. SEGACT MPTIMP
  179. ENDIF
  180. LCLIMY=PROPH2.LCLIM(IESP)
  181. IF (LCLIMY) THEN
  182. KRYIMP=PROPH2.KRCLIM(IESP)
  183. SEGACT KRYIMP
  184. ENDIF
  185. SEGACT NOMINC
  186. SEGACT KRCENT
  187. SEGACT KRFACE
  188. SEGACT MELEFL
  189. SEGACT MPSURF
  190. SEGACT MPNORM
  191. SEGACT MPVOLU
  192. MPDKC=PROPH2.MPDIFF(IESP)
  193. SEGACT MPDKC
  194. SEGACT MPROC
  195. SEGACT MPTEMC
  196. MPYKC=PROPH2.MPVALY(IESP)
  197. SEGACT MPYKC
  198. ICOGRY=PROPHY.CGRYK(IESP)
  199. SEGACT ICOGRY
  200. NSOUCH=ICOGRY.IMACHE(/1)
  201. DO 1 ISOUCH=1,NSOUCH
  202. MCOGRY=ICOGRY.IMACHE(ISOUCH)
  203. JCOGRY=ICOGRY.ICHAML(ISOUCH)
  204. SEGACT JCOGRY
  205. KDYKDX=JCOGRY.IELVAL(1)
  206. KDYKDY=JCOGRY.IELVAL(2)
  207. SEGDES JCOGRY
  208. SEGACT KDYKDX
  209. SEGACT KDYKDY
  210. SEGACT MCOGRY
  211. NELEM=MCOGRY.NUM(/2)
  212. NPTEL=MCOGRY.NUM(/1)
  213. NPP1=NPTEL-1
  214. NPP2=NPTEL-1
  215. NEL1=NELEM
  216. NEL2=NELEM
  217. IEL1=1
  218. IEL2=1
  219. SEGINI RETRHO
  220. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  221. SEGINI RETRYK
  222. ENDIF
  223. SEGINI CTGRY
  224. RETRHO.NOMPRI(1:4)=NOMINC.MOTS(1)
  225. RETRHO.NOMPRI(5:8)=' '
  226. RETRHO.NOMDUA(1:4)=NOMINC.MOTS(IDIM+2)
  227. RETRHO.NOMDUA(5:8)=' '
  228. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  229. RETRYK.NOMPRI(1:4)=NOMINC.MOTS(IDIM+2+IESP)
  230. RETRYK.NOMPRI(5:8)=' '
  231. RETRYK.NOMDUA(1:4)=NOMINC.MOTS(IDIM+2)
  232. RETRYK.NOMDUA(5:8)=' '
  233. ENDIF
  234. DO 12 IELEM=1,NELEM
  235. * Le premier point du support de ICOGRY est un point FACE
  236. NGFACE=MCOGRY.NUM(1,IELEM)
  237. NLFACE=KRFACE.LECT(NGFACE)
  238. IF (NLFACE.EQ.0) THEN
  239. WRITE(IOIMP,*) 'Erreur de programmation n°1'
  240. GOTO 9999
  241. ENDIF
  242. * On calcule la contribution à la matrice jacobienne IJACO de la face
  243. * NGFAC (points duaux : centres à gauche et à droite de la face)
  244. * (points primaux : une partie (bicoz conditions aux limites)
  245. * de ceux du stencil pour le calcul du gradient
  246. * à la face, ils doivent être des points centres)
  247. * Si le flux de chaleur sur la face est imposé par les conditions
  248. * aux limites, la contribution de la face à IJACO est nulle.
  249. NGCGAU=MELEFL.NUM(1,NLFACE)
  250. NGCDRO=MELEFL.NUM(3,NLFACE)
  251. NLCGAU=KRCENT.LECT(NGCGAU)
  252. NLCDRO=KRCENT.LECT(NGCDRO)
  253. LMUR=(NGCGAU.EQ.NGCDRO)
  254. * On distingue le cas où la face est un bord du maillage (mur)
  255. * du cas où la face est interne au maillage
  256. IF (.NOT.LMUR) THEN
  257. NPD=2
  258. ICOORX = ((IDIM + 1) * (NGFACE - 1))+1
  259. XF = MCOORD.XCOOR(ICOORX)
  260. YF = MCOORD.XCOOR(ICOORX+1)
  261. ICOORX = ((IDIM + 1) * (NGCGAU - 1))+1
  262. XG = MCOORD.XCOOR(ICOORX)
  263. YG = MCOORD.XCOOR(ICOORX+1)
  264. XFMXG = XF - XG
  265. YFMYG = YF - YG
  266. DRG=SQRT((XFMXG*XFMXG)+(YFMYG*YFMYG))
  267. ICOORX = ((IDIM + 1) * (NGCDRO - 1))+1
  268. XD = MCOORD.XCOOR(ICOORX)
  269. YD = MCOORD.XCOOR(ICOORX+1)
  270. XFMXD = XF - XD
  271. YFMYD = YF - YD
  272. DRD=SQRT((XFMXD*XFMXD)+(YFMYD*YFMYD))
  273. ALPHA=DRG/(DRG+DRD)
  274. UMALPH= 1.0D0 - ALPHA
  275. ELSE
  276. NPD=1
  277. ALPHA=0.0D0
  278. UMALPH=1.0D0
  279. ENDIF
  280. IF (LCLIMR) THEN
  281. NLFRI=KRRIMP.LECT(NGFACE)
  282. ELSE
  283. NLFRI=0
  284. ENDIF
  285. IF (NLFRI.GT.0) THEN
  286. RHOF=MPRIMP.VPOCHA(NLFRI,1)
  287. ELSE
  288. RHOG = MPROC.VPOCHA(NLCGAU,1)
  289. RHOD = MPROC.VPOCHA(NLCDRO,1)
  290. RHOF = UMALPH * RHOG + ALPHA * RHOD
  291. ENDIF
  292. IF (LCLIMT) THEN
  293. NLFTI=KRTIMP.LECT(NGFACE)
  294. ELSE
  295. NLFTI=0
  296. ENDIF
  297. IF (NLFTI.GT.0) THEN
  298. TEMF=MPTIMP.VPOCHA(NLFTI,1)
  299. ELSE
  300. TEMG = MPTEMC.VPOCHA(NLCGAU,1)
  301. TEMD = MPTEMC.VPOCHA(NLCDRO,1)
  302. TEMF = UMALPH * TEMG + ALPHA * TEMD
  303. ENDIF
  304. DKG = MPDKC.VPOCHA(NLCGAU,1)
  305. DKD = MPDKC.VPOCHA(NLCDRO,1)
  306. DKF = UMALPH * DKG + ALPHA * DKD
  307. DNG = MPDNC.VPOCHA(NLCGAU,1)
  308. DND = MPDNC.VPOCHA(NLCDRO,1)
  309. DNF = UMALPH * DNG + ALPHA * DND
  310. NPP=NPTEL-1
  311. * IPD=1 : point à gauche du point NGFACE
  312. * IPD=2 : point à droite du point NGFACE
  313. DO 122 IPD=1,NPD
  314. NPDUAL=MELEFL.NUM((2*IPD)-1,NLFACE)
  315. IF (.NOT.LMUR) THEN
  316. CTGRY.POIDU2(IPD,IEL2)=NPDUAL
  317. ELSE
  318. CTGRY.POIDU1(IPD,IEL1)=NPDUAL
  319. ENDIF
  320. NLCEND=KRCENT.LECT(NPDUAL)
  321. IF (NLCEND.EQ.0) THEN
  322. WRITE(IOIMP,*) 'Erreur grave n°1'
  323. GOTO 9999
  324. ENDIF
  325. DO 124 IPP=1,NPP
  326. NPPRIM=MCOGRY.NUM(IPP+1,IELEM)
  327. LCTRB2=.TRUE.
  328. IF (LCLIMY) THEN
  329. NLCLY=KRYIMP.LECT(NPPRIM)
  330. IF (NLCLY.NE.0) THEN
  331. LCTRB2=.FALSE.
  332. ENDIF
  333. ENDIF
  334. IF (.NOT.LCTRB2) THEN
  335. * Lorsque une contribution est nulle, on fixe artificiellement le
  336. * point primal égal au point dual.
  337. IF (.NOT.LMUR) THEN
  338. CTGRY.POIPR2(IPP,IEL2)=NPDUAL
  339. RETRHO.VALMA2(IPD,IPP,IEL2)=0.D0
  340. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  341. RETRYK.VALMA2(IPD,IPP,IEL2)=0.D0
  342. ENDIF
  343. ELSE
  344. CTGRY.POIPR1(IPP,IEL1)=NPDUAL
  345. RETRHO.VALMA1(IPD,IPP,IEL1)=0.D0
  346. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  347. RETRYK.VALMA1(IPD,IPP,IEL1)=0.D0
  348. ENDIF
  349. ENDIF
  350. ELSE
  351. * Les contributions valent :
  352. * (d Res_{\rho Yk})_d / (d var)_p =
  353. * +/-1 (normale sortante, rentrante) (1/V_d) * (S_f) * \rho_f * Dk_f
  354. * * [ ((n_x * \beta_x) +(n_y * \beta_y)) *
  355. * ((dYk)_p / (d var)_p)]
  356. * avec :
  357. * (dYk)_p / (d \rho)_p = - Yk_p / \rho_p
  358. * (dYk)_p / (d \rho Yk)_p = 1 / \rho_p
  359. * \beta_x : coefficients pour le calcul de dYk/dx
  360. * \beta_y : coefficients pour le calcul de dYk/dy
  361. *
  362. NLCENP=KRCENT.LECT(NPPRIM)
  363. IF (NLCENP.EQ.0) THEN
  364. WRITE(IOIMP,*) 'Erreur grave n°2'
  365. GOTO 9999
  366. ENDIF
  367. * normale sortante pour IPD=1, rentrante pour IPD=2
  368. SIGNOR=(-1.D0)**(IPD+1)
  369. VOLUEL=MPVOLU.VPOCHA(NLCEND,1)
  370. SURFFA=MPSURF.VPOCHA(NLFACE,1)
  371. CNX =MPNORM.VPOCHA(NLFACE,1)
  372. CNY =MPNORM.VPOCHA(NLFACE,2)
  373. BETAX =KDYKDX.VELCHE(IPP+1,IELEM)
  374. BETAY =KDYKDY.VELCHE(IPP+1,IELEM)
  375. RHOP =MPROC.VPOCHA(NLCENP,1)
  376. YKP =MPYKC.VPOCHA(NLCENP,1)
  377. * YKP =MPYKC.VPOCHA(NLCEND,1)
  378. CPK=PROPHY.CV(IESP)+PROPHY.R(IESP)
  379. CPN=PROPHY.CV(NESP+1)+PROPHY.R(NESP+1)
  380. HKF=(CPK*TEMF)+PROPHY.H0K(IESP)
  381. HNF=(CPN*TEMF)+PROPHY.H0K(NESP+1)
  382. FACTOR=SIGNOR*(1.D0/VOLUEL)*SURFFA*RHOF*
  383. $ ((HKF*DKF)-(HNF*DNF))
  384. $ *((CNX*BETAX)+(CNY*BETAY))
  385. DYKDRO=-YKP/RHOP
  386. DYKDRY=1.D0/RHOP
  387. C IF((NGCGAU.EQ.30).AND.(NGCDRO.EQ.30)) THEN
  388. C WRITE(IOIMP,*) 'NGFACE=',NGFACE
  389. C WRITE(IOIMP,*) 'NGCGAU=',NGCGAU
  390. C WRITE(IOIMP,*) 'NGCDRO=',NGCDRO
  391. C WRITE(IOIMP,*) 'IESP=',IESP
  392. C WRITE(IOIMP,*) 'JACO(RETRYK)=',
  393. C $ (FACTOR*DYKDRY)
  394. C ENDIF
  395. IF (.NOT.LMUR) THEN
  396. CTGRY.POIPR2(IPP,IEL2)=NPPRIM
  397. RETRHO.VALMA2(IPD,IPP,IEL2)=FACTOR*DYKDRO
  398. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  399. RETRYK.VALMA2(IPD,IPP,IEL2)=FACTOR*DYKDRY
  400. ENDIF
  401. ELSE
  402. CTGRY.POIPR1(IPP,IEL1)=NPPRIM
  403. RETRHO.VALMA1(IPD,IPP,IEL1)=FACTOR*DYKDRO
  404. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  405. RETRYK.VALMA1(IPD,IPP,IEL1)=FACTOR*DYKDRY
  406. ENDIF
  407. ENDIF
  408. ENDIF
  409. 124 CONTINUE
  410. 122 CONTINUE
  411. IF (.NOT.LMUR) THEN
  412. IEL2=IEL2+1
  413. ELSE
  414. IEL1=IEL1+1
  415. ENDIF
  416. 12 CONTINUE
  417. NPP1=NPTEL-1
  418. NPP2=NPTEL-1
  419. NEL1=IEL1-1
  420. NEL2=IEL2-1
  421. SEGADJ RETRHO
  422. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  423. SEGADJ RETRYK
  424. ENDIF
  425. SEGADJ CTGRY
  426. CTGRY.LMATSI(**)=RETRHO
  427. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  428. CTGRY.LMATSI(**)=RETRYK
  429. ENDIF
  430. * On accumule les matrices résultantes dans IJACO
  431. CALL AJMTK(CTGRY,IJACO,IMPR,IRET)
  432. IF (IRET.NE.0) GOTO 9999
  433. SEGSUP RETRHO
  434. IF ((IESP.GE.1).AND.(IESP.LE.NESP)) THEN
  435. SEGSUP RETRYK
  436. ENDIF
  437. SEGSUP CTGRY
  438. *
  439. SEGDES MCOGRY
  440. SEGDES KDYKDY
  441. SEGDES KDYKDX
  442. 1 CONTINUE
  443. SEGDES ICOGRY
  444. SEGDES MPYKC
  445. SEGDES MPTEMC
  446. SEGDES MPROC
  447. SEGDES MPDKC
  448. SEGDES MPVOLU
  449. SEGDES MPNORM
  450. SEGDES MPSURF
  451. SEGDES MELEFL
  452. SEGDES KRFACE
  453. SEGDES KRCENT
  454. SEGDES NOMINC
  455. IF (LCLIMY) THEN
  456. SEGDES KRYIMP
  457. ENDIF
  458. IF (LCLIMT) THEN
  459. SEGDES KRTIMP
  460. SEGDES MPTIMP
  461. ENDIF
  462. IF (LCLIMR) THEN
  463. SEGDES KRRIMP
  464. SEGDES MPRIMP
  465. ENDIF
  466. ENDDO
  467. SEGDES MPDNC
  468. SEGDES PROPH2
  469. SEGDES PROPHY
  470. *
  471. * Normal termination
  472. *
  473. IRET=0
  474. RETURN
  475. *
  476. * Format handling
  477. *
  478. *
  479. * Error handling
  480. *
  481. 9999 CONTINUE
  482. IRET=1
  483. WRITE(IOIMP,*) 'An error was detected in subroutine zlap1c'
  484. RETURN
  485. *
  486. * End of subroutine ZLAP1C
  487. *
  488. END
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  

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