1 : C DEVINT SOURCE CHAT 05/01/12 22:46:10 5004
2 : SUBROUTINE DEVINT(ICHATE,ICHAFO,KTNUM,KTRAV,REPRIS)
3 : IMPLICIT INTEGER(I-N)
4 : IMPLICIT REAL*8(A-H,O-Z)
5 : *--------------------------------------------------------------------*
6 : * *
7 : * Op{rateur DYNE : algorithme de Fu - de Vogelaere *
8 : * ________________________________________________ *
9 : * *
10 : * Interpolation d'un liste REEL. *
11 : * Remplissage du segment de travail KTRAV. *
12 : * *
13 : * Param}tres: *
14 : * *
15 : * e ICHATE pointeur sur un LISTREEL, abscisse *
16 : * e ICHAFO pointeur sur un LISTREEL, ordonn{e *
17 : * e KTNUM segment contenant les param}tres num{riques *
18 : * s KTRAV segment de travail *
19 : * e REPRIS logique indiquant si le calcul est en reprise *
20 : * *
21 : * Auteur, date de cr{ation: *
22 : * *
23 : * Lionel VIVAN, le 17 avril 1990 *
24 : * *
25 : *--------------------------------------------------------------------*
26 : *
27 : -INC CCOPTIO
28 : -INC SMLREEL
29 : *
30 : SEGMENT,MTNUM
31 : REAL*8 XDT(NPC1),XTEMPS(NPC1)
32 : ENDSEGMENT
33 : SEGMENT,MTRAV
34 : REAL*8 FTCHG(NPC2)
35 : ENDSEGMENT
36 : LOGICAL REPRIS
37 : *
38 : MTNUM = KTNUM
39 : *
40 : NPC1 = XDT(/1)
41 : PASTEM = XDT(1)
42 : PASTS2 = PASTEM * 0.5D0
43 : MLREE1 = ICHATE
44 : SEGACT MLREE1
45 : NF = MLREE1.PROG(/1)
46 : MLREE2 = ICHAFO
47 : SEGACT MLREE2
48 : NPC2 = 2 * NPC1
49 : SEGINI MTRAV
50 : KTRAV = MTRAV
51 : *
52 : * interpolation du chargement
53 : *
54 : N1 = 1
55 : N2 = 2
56 : IF ( REPRIS ) THEN
57 : TEMP = XTEMPS(1)
58 : TES2 = TEMP - PASTS2
58 : CALL INTLIN(TES2,ICHATE,ICHAFO,NF,N1,N2, FTEM,IRET)
59 : IF (IRET.EQ.0) THEN
60 : * temps en dehors de la liste
60 : CALL ERREUR(208)
61 : RETURN
62 : ENDIF
63 : ELSE
64 : FTEM = 0.D0
65 : ENDIF
66 : IT2 = 1
67 : FTCHG(IT2) = FTEM
68 : NPC3 = NPC1 - 1
69 : DO 10 IT = 1,NPC3
70 : TEMP = XTEMPS(IT)
70 : CALL INTLIN(TEMP,ICHATE,ICHAFO,NF,N1,N2, FTEM,IRET)
71 : IF (IRET.EQ.0) THEN
72 : * temps en dehors de la liste
72 : CALL ERREUR(208)
73 : RETURN
74 : ENDIF
75 : IT2 = IT2 + 1
76 : FTCHG(IT2) = FTEM
77 : TES2 = TEMP + PASTS2
77 : CALL INTLIN(TES2,ICHATE,ICHAFO,NF,N1,N2, FTEM,IRET)
78 : IF (IRET.EQ.0) THEN
79 : * temps en dehors de la liste
79 : CALL ERREUR(208)
80 : RETURN
81 : ENDIF
82 : IT2 = IT2 + 1
83 : FTCHG(IT2) = FTEM
84 : 10 CONTINUE
85 : * end do
86 : TEMP = XTEMPS(NPC1)
86 : CALL INTLIN(TEMP,ICHATE,ICHAFO,NF,N1,N2, FTEM,IRET)
87 : IF (IRET.EQ.0) THEN
88 : * temps en dehors de la liste
88 : CALL ERREUR(208)
89 : RETURN
90 : ENDIF
91 : IT2 = IT2 + 1
92 : FTCHG(IT2) = FTEM
93 : *
94 : SEGDES,MLREE1,MLREE2
95 : *
96 : END
97 :
© Cast3M 2003 - All rights reserved.
Disclaimer