1 : C RLEXCE SOURCE CHAT 05/01/13 03:02:22 5004
2 : SUBROUTINE RLEXCE(MELEME,MELCEN,MELFAC,INORM,ICHCL,MLECOE)
3 : C************************************************************************
4 : C
5 : C PROJET : CASTEM 2000
6 : C
7 : C NOM : RLEXCE
8 : C
9 : C DESCRIPTION : Appelle par GRADGE
10 : C
11 : C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
12 : C
13 : C AUTEUR : A. BECCANTINI
14 : C
15 : C************************************************************************
16 : C
17 : C This subroutine computes the coefficients which allow to perform
18 : C a linear exact reconstruction of each 'CENTRE' value.
19 : C Indeed, given the i-th centre (NC=MELEME.NUM(NBNN,i)), given the list
20 : C of its neighbors MELEME.NUM(j,i),j=1,NBNN-1,
21 : C we have to compute the matrix of coefficients a(i,j) such that
22 : C
23 : C VAL(MELEME.NUM(NBNN,i)) = \sum_{neig1} a(i,neig1) * VAL(neig1)
24 : C
25 : C where neig1 is a 'CENTRE' point or a 'wall boundary condition'
26 : C point.
27 : C
28 : C To compute these coefficients, we impose that VAL is linear with
29 : C respect to the coordinates of NC and its neighbor. Then, since
30 : C there are less unknowns than equations, we use a least square
31 : C method. We impose that
32 : C
33 : C A + B (x_{neig} - x_NC) + C (y_{neig} - y_NC) + D (z_{neig} - z_NC)
34 : C = VAL(neig)
35 : C
36 : C To determine A, B, C, D we have to solve
37 : C
38 : C MATA . tran(A, B, C, D) = tran(VAL(1), VAL(2), ... , VALNOR(j) /
39 : C (r_{j} - r_NC)
40 : C
41 : C with MATA(1,*) = (1,x_1-x_NC,y_1-y_NC,z_1-z_NC)
42 : C MATA(2,*) = (1,x_2-x_NC,y_2-y_NC,z_2-z_NC)
43 : C ...
44 : C
45 : C To determine a(i,neig) we have to solve a linear system (for each
46 : C neig). If the neighbor is a 'CENTRE' point or a 'wall boundary
47 : C condition' point we solve
48 : C
49 : C MATA . tran(a(i,neig), b(i,neig), c(i,neig), d(i,neig)) = e_{neig}
50 : C
51 : C with e_{neig} = tran (0,0,...,0,1,0,...) (1 in the neig position)
52 : C
53 : C N.B. Concerning the neighbor, two different cases are taken into
54 : C account.
55 : C 1) Reflecting boundary conditions:
56 : C The neighbor does not belong to the geometrical support of
57 : C ICHCL -> It is a wall point
58 : C Then the reconstruction is performed on a virtual point,
59 : C the symmetric point of the centre with respect to the wall
60 : C 2) Non_reflecting boundary conditions:
61 : C The neighbor belongs to the geometrical support of ICHCL
62 : C -> The reconstruction is performed on such FACE point
63 : C
64 : C**** Inputs:
65 : C
66 : C MELEME = the MELEME which contains the stencil of the gradient
67 : C molecule
68 : C MELCEN = the 'CENTRE' meleme
69 : C MELFAC = the 'FACE' meleme
70 : C INORM = the CHAMPOINT containing the face normals
71 : C ICHCL = the CHAMPOINT containing the non-reflecting boundary
72 : C conditions
73 : C
74 : C**** Output:
75 : C
76 : C MLECOE = list of integers.
77 : C
78 : C MLECOE.LECT(i) points to the MLREEL MATCOE which
79 : C contain the a(i,neig)
80 : C
81 : C***********************************************************************
82 : C
83 : C Modified the 25-th of february to take into account the 'MODE' 'AXIS'
84 : C
85 : C**** Variables de COOPTIO
86 : C
87 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
88 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
89 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
90 : C & ,IECHO, IIMPI, IOSPI
91 : C & ,IDIM
92 : CC & ,MCOORD
93 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
94 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
95 : C & ,NORINC,NORVAL,NORIND,NORVAD
96 : C & ,NUCROU, IPSAUV, IFICLE, IPREFI, IREFOR, ISAFOR
97 : CC
98 : IMPLICIT INTEGER(I-N)
99 : INTEGER INORM, ICHCL, IGEOM, NSOU, JG, NTCEN, NVMAX, NVMIN
100 : & ,NBNN, NBELEM, NGV
101 : & , NGC, IPCOOR, NLV, NLV1, NLF, IERSVD, IERR0
102 : & ,ISOUS , ICEN, IELEM, IVOI, I1, I2, I3, I4, NAXI
103 : REAL*8 XC ,YC, ZC, XV, YV, ZV, DX, DY, DZ, ERRTOL, SMAX, SMIN
104 : & ,RNX, RNY, RNZ, ALPHA
105 : PARAMETER(ERRTOL=1.0D-16)
106 : CHARACTER*8 TYPE
107 : LOGICAL LOGSVD, LOGAXI
108 : -INC CCOPTIO
109 : -INC SMCOORD
110 : -INC SMELEME
111 : -INC SMLREEL
112 : -INC SMLENTI
113 : -INC SMCHPOI
114 : C
115 : INTEGER N1,N2
116 : SEGMENT MATRIX
117 : REAL*8 MAT(N1,N2)
118 : ENDSEGMENT
119 : C
120 : POINTEUR MELFAC.MELEME, MLEFAC.MLENTI, MLEBC.MLENTI, MPNORM.MPOVAL
121 : & ,MLESOU.MLENTI, MELCEN.MELEME ,MLECEN.MLENTI
122 : & ,MLECOE.MLENTI, MATCOE.MATRIX
123 : & ,MATA.MATRIX,MATU.MATRIX,MATV.MATRIX,MLRB.MLREEL
124 : & ,MLRSIG.MLREEL,MLRTRA.MLREEL,MTAA.MATRIX, MINTAA.MATRIX
125 : & ,MLRIN1.MLREEL,MLRIN2.MLREEL
126 : & ,MLRIN3.MLREEL
127 : C
128 : C**** Axis-symmetrical case
129 : C
130 : IF((IFOMOD .EQ. 0) .AND. (IDIM .EQ. 2))THEN
131 : LOGAXI=.TRUE.
132 : NAXI=2
133 : ELSE
134 : NAXI=0
135 : LOGAXI=.FALSE.
136 : ENDIF
137 : C
138 : C**** We create the MLENTI for the centers
139 : C
139 : CALL KRIPAD(MELCEN,MLECEN)
140 : IF(IERR .NE. 0)GOTO 9999
141 : C En KRIPAD
142 : C SEGINI MLECEN
143 : C
144 : C**** We create the MLENTI for the faces
145 : C
145 : CALL KRIPAD(MELFAC,MLEFAC)
146 : IF(IERR .NE. 0)GOTO 9999
147 : C En KRIPAD
148 : C SEGINI MLEFAC
149 : C
150 : C**** We create the MLENTI for the BC
151 : C
152 : IF(ICHCL.NE.0)THEN
152 : CALL LICHT(ICHCL,MPOVAL,TYPE,IGEOM)
153 : C In LICHT
154 : C SEGACT MPOVAL*MOD
155 : SEGDES MPOVAL
156 : ELSE
157 : IGEOM=0
158 : ENDIF
158 : CALL KRIPAD(IGEOM,MLEBC)
159 : IF(IERR .NE. 0)GOTO 9999
160 : C SEGINI MLEBC
161 : C
162 : C**** Le MPOVAL des normales
163 : C
163 : CALL LICHT(INORM,MPNORM,TYPE,IGEOM)
164 : C SEGACT MPNORM
165 : C
166 : C**** We recover the elemenary mesh of MELEME
167 : C We compute the number of maximum number of neighbors
168 : C We compute the number of centers
169 : C
170 : SEGACT MELEME
171 : NSOU=MAX(MELEME.LISOUS(/1),1)
172 : JG=NSOU
173 : SEGINI MLESOU
174 : IF (NSOU.EQ.1)THEN
175 : MLESOU.LECT(1)=MELEME
176 : NBNN=MELEME.NUM(/1)
177 : NTCEN=MELEME.NUM(/2)
178 : NVMAX=NBNN
179 : ELSE
180 : NVMAX=0
181 : NTCEN=0
182 : DO ISOUS=1,NSOU,1
183 : IPT1=MELEME.LISOUS(ISOUS)
184 : MLESOU.LECT(ISOUS)=IPT1
185 : SEGACT IPT1
186 : NBNN=IPT1.NUM(/1)
187 : NVMAX=MAX(NVMAX,NBNN)
188 : NTCEN=NTCEN+IPT1.NUM(/2)
189 : ENDDO
190 : ENDIF
191 : NVMAX=NVMAX+NAXI
192 : C
193 : C**** The output
194 : C
195 : JG=NTCEN
196 : SEGINI MLECOE
197 : C
198 : C MATA = matrix to "pseudoinvert" (NVMAX,IDIM+1)
199 : C MATU = matrix of the singular right eigenvectors of MATA
200 : C (NVMAX,IDIM+1)
201 : C MATV = matrix of the singular left eigenvectors of MATA
202 : C (IDIM+1,IDIM+1)
203 : C But in invsvd.eso, MATV dimensions are NVMAX,IDIM+1
204 : C MLRSIG = singular values of MATA (IDIM+1)
205 : C MLRB = vector (NVMAX)
206 : C MLRB.PROG(j) = 1
207 : C
208 : C N.B. MATA = MATU MATSIG t(MATV)
209 : C If MATA is non singular,
210 : C inv(MATA) = MATV inv(MATSIG) t(MATU)
211 : C
212 : C MLRTRA temporary vector of invsvd.eso
213 : C NVMIN = IDIM + 1 (the most little dimension of the matrices)
214 : C
215 : N1=NVMAX
216 : N2=IDIM+1
217 : SEGINI MATA
218 : SEGINI MATU
219 : SEGINI MATV
220 : JG=NVMAX
221 : SEGINI MLRB
222 : JG=IDIM+1
223 : SEGINI MLRSIG
224 : SEGINI MLRTRA
225 : NVMIN=N2
226 : C
227 : C MTAA : [t(MATA).MATA]
228 : C MINTAA : [inve(t(MATA) MATA)]
229 : C MLRIN1,2,3 : "temporary vectors"
230 : C
231 : N1=NVMIN
232 : N2=NVMIN
233 : SEGINI MTAA
234 : SEGINI MINTAA
235 : JG=NVMIN
236 : SEGINI MLRIN1
237 : SEGINI MLRIN2
238 : SEGINI MLRIN3
239 : C
240 : C**** Loop on the sommet to compute the coefficient
241 : C
242 : ICEN=0
243 : DO ISOUS=1,NSOU,1
244 : IPT1=MLESOU.LECT(ISOUS)
245 : NBNN=IPT1.NUM(/1)
246 : NBELEM=IPT1.NUM(/2)
247 : DO IELEM=1,NBELEM,1
248 : C
249 : NGC=IPT1.NUM(NBNN,IELEM)
250 : IPCOOR=((NGC-1)*(IDIM+1))+1
251 : XC=MCOORD.XCOOR(IPCOOR)
252 : YC=MCOORD.XCOOR(IPCOOR+1)
253 : IF(IDIM.EQ.3) ZC=MCOORD.XCOOR(IPCOOR+2)
254 : C
255 : C********** We create the matrix of coefficients.
256 : C
257 : N2=NBNN+NAXI
258 : N1=NVMIN
259 : ICEN=ICEN+1
260 : SEGINI MATCOE
261 : MLECOE.LECT(ICEN)=MATCOE
262 : C
263 : C********** Loop involving the neighbors (and the centre itself)
264 : C We create the matrix to "pseudoinvert"
265 : C
266 : DO IVOI=1,NBNN,1
267 : NGV=IPT1.NUM(IVOI,IELEM)
268 : NLV=MLECEN.LECT(NGV)
269 : NLV1=MLEBC.LECT(NGV)
270 : IF((NLV .NE. 0) .OR. (NLV1 .NE. 0))THEN
271 : C
272 : C**************** NGV is a 'centre' point or a ICHCL point
273 : C
274 : IPCOOR=((NGV-1)*(IDIM+1))+1
275 : XV=MCOORD.XCOOR(IPCOOR)
276 : YV=MCOORD.XCOOR(IPCOOR+1)
277 : MATA.MAT(IVOI,1)=1
278 : MATA.MAT(IVOI,2)=XV
279 : MATA.MAT(IVOI,3)=YV
280 : IF(IDIM.EQ.3)THEN
281 : ZV=MCOORD.XCOOR(IPCOOR+2)
282 : MATA.MAT(IVOI,4)=ZV
283 : ENDIF
284 : ELSE
285 : C
286 : C**************** Reflecting BC reconstruction
287 : C
288 : NLF=MLEFAC.LECT(NGV)
289 : RNX=MPNORM.VPOCHA(NLF,1)
290 : RNY=MPNORM.VPOCHA(NLF,2)
291 : IPCOOR=((NGV-1)*(IDIM+1))+1
292 : XV=MCOORD.XCOOR(IPCOOR)
293 : YV=MCOORD.XCOOR(IPCOOR+1)
294 : ALPHA=(XV-XC)*RNX+(YV-YC)*RNY
295 : DX=ALPHA*2.0D0*RNX
296 : DY=ALPHA*2.0D0*RNY
297 : MATA.MAT(IVOI,1)=1
298 : MATA.MAT(IVOI,2)=XC+DX
299 : MATA.MAT(IVOI,3)=YC+DY
300 : IF(IDIM.EQ.3)THEN
301 : RNZ=MPNORM.VPOCHA(NLF,3)
302 : ZV=MCOORD.XCOOR(IPCOOR+2)
303 : ALPHA=ALPHA+(ZV-ZC)*RNZ
304 : DZ=ALPHA*2.0D0*RNZ
305 : MATA.MAT(IVOI,4)=ZC+DZ
306 : ENDIF
307 : ENDIF
308 : MLRB.PROG(IVOI)=1.0D0
309 : ENDDO
310 : C
311 : DO IVOI=NBNN+1,NBNN+NAXI,1
312 : MATA.MAT(IVOI,1)=1
313 : MATA.MAT(IVOI,2)=XC
314 : MATA.MAT(IVOI,3)=YC
315 : MLRB.PROG(IVOI)=1.0D0
316 : ENDDO
317 : C
318 : CC
319 : CC TEST
320 : CC
321 : C do ivoi=1,nbnn,1
322 : C write(*,*) 'ngv =', ipt1.num(ivoi,ielem)
323 : C write(*,*)
324 : C & 'mata.mat(',ivoi,')=',(mata.mat(ivoi,i1),i1=1,nvmin
325 : C $ ,1)
326 : C write(*,*) 'b(',ivoi,')=',mlrb.prog(ivoi)
327 : C enddo
328 : C
329 : C
330 : C********** Now we have to invert this matrix
331 : C
332 : LOGSVD=.TRUE.
332 : CALL INVSVD( NVMAX, NBNN+NAXI, NVMIN, MATA.MAT,
333 : & MLRSIG.PROG,.TRUE.,MATU.MAT,.TRUE.,MATV.MAT,IERSVD,
334 : & MLRTRA.PROG)
335 : IF(IERSVD.NE.0)THEN
336 : C
337 : C************* SVD decomposition of the matrix does not work
338 : C
339 : LOGSVD=.FALSE.
340 : ELSE
341 : C
342 : C************ We check the condition number of MATA
343 : C
344 : SMAX=0.0D0
345 : DO I1=1,NVMIN,1
346 : SMAX=MAX(SMAX,MLRSIG.PROG(I1))
347 : ENDDO
348 : SMIN=SMAX
349 : DO I1=1,NVMIN,1
350 : SMIN=MIN(SMIN,MLRSIG.PROG(I1))
351 : ENDDO
352 : IF((SMIN/SMAX) .LT. ERRTOL)THEN
353 : LOGSVD=.FALSE.
354 : ENDIF
355 : ENDIF
356 : C
357 : C TEST
358 : C write(*,*) 'LOGSVD=.FALSE.'
359 : C LOGSVD=.FALSE.
360 : C
361 : IF(LOGSVD)THEN
362 : C
363 : C********** INVSVD worked
364 : C
365 : C MATA = MATU MATSIG t(MATV)
366 : C inv(MATA) = MATV inv(MATSIG) t(MATU)
367 : C
368 : DO I4=1,NVMIN,1
369 : DO IVOI=1,NBNN+NAXI,1
370 : DO I2=1,IDIM+1,1
371 : C I2=1 is the only coefficient we are not interested
372 : C in. But we computed it to verify that
373 : C sum_ivoi MATCOE.MAT(ivoi,1) = 1
374 : MATCOE.MAT(I2,IVOI)=MATCOE.MAT(I2,IVOI)+
375 : & (MATV.MAT(I2,I4)*MATU.MAT(IVOI,I4)
376 : & /MLRSIG.PROG(I4))
377 : ENDDO
378 : ENDDO
379 : ENDDO
380 : ELSE
381 : WRITE (IOIMP,*) 'rlexce.eso'
382 : C 22 0
383 : C Opération malvenue. Résultat douteux
383 : CALL ERREUR(22)
384 : C
385 : C************* INVSVD does not worked
386 : C For each neighbor k we have to compute the solution
387 : C of
388 : C
389 : C t(MATA) MATA x = t(MATA) * b
390 : C
391 : C where b= \sum_l e_l \delta(k,l) = e_k
392 : C
393 : C To do that, we compute
394 : C
395 : C X_0 = [inve(t(MATA) MATA)] [t(MATA) * b]
396 : C
397 : C X_1 = X_0 + [inve(t(MATA) MATA)] [t(MATA) * b -
398 : C [t(MATA) MATA] X_0]
399 : C
400 : C
401 : C********** We compute [t(MATA) MATA]
402 : C We store it in the upper triangle of MTAA(NVMIN,NVMIN)
403 : C
404 : DO I1=1,NVMIN,1
405 : DO I2=I1,NVMIN,1
406 : MTAA.MAT(I1,I2)=0.0D0
407 : ENDDO
408 : ENDDO
409 : C
410 : DO I1=1,NVMIN,1
411 : DO I2=I1,NVMIN,1
412 : DO I3=1,NBNN+NAXI,1
413 : MTAA.MAT(I1,I2)=MTAA.MAT(I1,I2)+
414 : & (MATA.MAT(I3,I1)*MATA.MAT(I3,I2))
415 : ENDDO
416 : ENDDO
417 : ENDDO
418 : C
419 : C************* We compute [inve(t(MATA) MATA)]
420 : C CHOLDC stores it in the upper trianle of MINTAA(NVMIN,NVMIN)
421 : C
421 : CALL CHOLDC(NVMIN,NVMIN,MTAA.MAT,MLRIN1.PROG,MINTAA.MAT,
422 : & MLRIN2.PROG,IERR0)
423 : IF(IERR0.NE.0)THEN
424 : WRITE(IOIMP,*) 'subroutine rlexce.eso.'
425 : C 26 2
426 : C Tache impossible. Probablement données erronées
426 : CALL ERREUR(26)
427 : GOTO 9999
428 : ENDIF
429 : C
430 : C************* We complete MTAA and MINTAA
431 : C
432 : DO I1=1,NVMIN,1
433 : DO I2=I1+1,NVMIN,1
434 : MINTAA.MAT(I2,I1)=MINTAA.MAT(I1,I2)
435 : MTAA.MAT(I2,I1)=MTAA.MAT(I1,I2)
436 : ENDDO
437 : ENDDO
438 : C
439 : DO IVOI=1,NBNN+NAXI,1
440 : C
441 : C************* We compute [t(MATA) . b] and we store it in MLRIN1.PROG
442 : C
443 : DO I1=1,NVMIN,1
444 : MLRIN1.PROG(I1)=MATA.MAT(IVOI,I1)*MLRB.PROG(IVOI)
445 : MLRIN2.PROG(I1)=0.0D0
446 : MLRIN3.PROG(I1)=0.0D0
447 : ENDDO
448 : C
449 : C**************** X_0 = [inve(t(MATA) MATA)] [t(MATA) * b]
450 : C X_0(i1) into MLRIN2.PROG(I1)
451 : C
452 : DO I2=1,NVMIN,1
453 : DO I1=1,NVMIN,1
454 : MLRIN2.PROG(I1)=MLRIN2.PROG(I1)+
455 : & (MINTAA.MAT(I1,I2)*MLRIN1.PROG(I2))
456 : ENDDO
457 : ENDDO
458 : C
459 : C*************** X_1 = X_0 + [inve(t(MATA) MATA)] [t(MATA) * b -
460 : C [t(MATA) MATA] X_0]
461 : C
462 : C [t(MATA) MATA] X_0 into MLRIN3.PROG
463 : C
464 : DO I2=1,NVMIN,1
465 : DO I1=1,NVMIN,1
466 : MLRIN3.PROG(I1)=MLRIN3.PROG(I1)+
467 : & (MTAA.MAT(I1,I2)*MLRIN2.PROG(I2))
468 : ENDDO
469 : ENDDO
470 : C
471 : C**************** Now we have
472 : C [t(MATA) . b] in MLRIN1.PROG
473 : C X_0(i1) in MLRIN2.PROG(I1)
474 : C [t(MATA) MATA] X_0 in MLRIN3.PROG
475 : C
476 : C X_1(i1) in MLRCOE.MAT(i1,IVOI)
477 : C
478 : DO I1=1,IDIM+1,1
479 : C The only unuseful one is I1=1
480 : DO I2=1,NVMIN,1
481 : MATCOE.MAT(I1,IVOI)=MATCOE.MAT(I1,IVOI)+
482 : & (MINTAA.MAT(I1,I2)*
483 : & (MLRIN1.PROG(I2)-MLRIN3.PROG(I2)))
484 : ENDDO
485 : MATCOE.MAT(I1,IVOI)=MATCOE.MAT(I1,IVOI)+
486 : & MLRIN2.PROG(I1)
487 : ENDDO
488 : ENDDO
489 : ENDIF
490 : C
491 : C LOGAXI -> We eliminate the false neighbors
492 : C
493 : IF(LOGAXI)THEN
494 : DO I1=1,NVMIN,1
495 : MATCOE.MAT(I1,NBNN)=MATCOE.MAT(I1,NBNN)+
496 : & MATCOE.MAT(I1,NBNN+1)+MATCOE.MAT(I1,NBNN+2)
497 : ENDDO
498 : N2=NBNN
499 : N1=NVMIN
500 : SEGADJ MATCOE
501 : ENDIF
502 : CC
503 : CC TEST
504 : C write(*,*) 'ngc =', NGC
505 : C write(*,*) 'invide',LOGSVD
506 : C write(*,*) 'nvois =',(ipt1.num(ivoi,ielem),ivoi=1,nbnn,1)
507 : C write(*,*) 'coeff(1) =',(matcoe.mat(1,ivoi),ivoi=1,nbnn,1)
508 : C write(*,*) 'coeff(2) =',(matcoe.mat(2,ivoi),ivoi=1,nbnn,1)
509 : C write(*,*) 'coeff(3) =',(matcoe.mat(3,ivoi),ivoi=1,nbnn,1)
510 : C if(idim.eq.3) write(*,*) 'coeff(4)=',
511 : C & (matcoe.mat(4,ivoi),ivoi=1,nbnn,1)
512 : C xv=0.0D0
513 : C yv=0.0D0
514 : C zv=0.0D0
515 : C xc=0.0D0
516 : C do ivoi=1,nbnn,1
517 : C xv=xv+matcoe.mat(1,ivoi)
518 : C yv=yv+matcoe.mat(2,ivoi)
519 : C zv=zv+matcoe.mat(3,ivoi)
520 : C if(idim.eq.3) xc=xc+matcoe.mat(4,ivoi)
521 : C enddo
522 : C write(*,*) 'sum_1=',xv
523 : C write(*,*) 'sum_2=',yv
524 : C write(*,*) 'sum_3=',zv
525 : C if(idim.eq.3) write(*,*) 'sum_4=',xc
526 : CC
527 : SEGDES MATCOE
528 : ENDDO
529 : SEGDES IPT1
530 : ENDDO
531 : C
532 : SEGSUP MLECEN
533 : SEGSUP MLEFAC
534 : SEGSUP MLEBC
535 : C
536 : SEGDES MPNORM
537 : IF(NSOU .GT. 1) SEGDES MELEME
538 : SEGSUP MLESOU
539 : C
540 : SEGDES MLECOE
541 : C
542 : SEGSUP MATA
543 : SEGSUP MATU
544 : SEGSUP MATV
545 : SEGSUP MLRSIG
546 : SEGSUP MLRTRA
547 : SEGSUP MLRB
548 : C
549 : SEGSUP MTAA
550 : SEGSUP MINTAA
551 : SEGSUP MLRIN1
552 : SEGSUP MLRIN2
553 : SEGSUP MLRIN3
554 : C
555 : C write(ioimp,*) 'FINITO'
556 : C stop
557 : C
558 : 9999 CONTINUE
559 : RETURN
560 : END
561 :
562 :
563 :
564 :
565 :
© Cast3M 2003 - All rights reserved.
Disclaimer