1 : C OPLREE SOURCE GOUNAND 11/04/21 21:15:27 6946
2 : SUBROUTINE OPLREE(IPO1,ICALC, IPO2)
3 : IMPLICIT INTEGER(I-N)
4 : IMPLICIT REAL*8(A-H,O-Z)
5 : ************************************************************************
6 : *
7 : * O P L R E E
8 : * -----------
9 : *
10 : * FONCTION:
11 : * ---------
12 : *
13 : * EFFECTUE DIVERSES OP{RATIONS SUR UNE LISTE DE R{ELS.
14 : *
15 : * MODULES UTILISES:
16 : * -----------------
17 : *
18 : -INC CCOPTIO
19 : -INC CCREEL
20 : -INC SMLREEL
21 : *
22 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
23 : * -----------
24 : *
25 : * IPO1 (E) POINTEUR SUR UN LISTREEL.
26 : * ICALC (E) NUM{RO DU TYPE DE CALCUL:
27 : * = 1 COSINUS.
28 : * = 2 SINUS.
29 : * = 7 EXPONENTIELLE.
30 : * = 8 LOGARITHME.
31 : * = 9 VALEUR ABSOLUE.
32 : * =10 COSINUS HYPERBOLIQUE
33 : * =11 SINUS HYPERBOLIQUE
34 : * =12 TANGENTE HYPERBOLIQUE
35 : * =13 FONCTION D'ERREUR ERF
36 : * IPO2 (S) POINTEUR SUR LE LISTREEL R{SULTAT.
37 : * = 0 , SI OP{RATION IMPOSSIBLE.
38 : *
39 : * AUTEUR, DATE DE CREATION:
40 : * -------------------------
41 : *
42 : * LIONEL VIVAN 12 AVRIL 1988
43 : * P. MANIGOT 05/09/88 AJOUT DE "EXP" ET "LOG".
44 : * L. VIVAN 18/07/90 AJOUT DE "SIN" ET "COS".
45 : *
46 : * LANGAGE:
47 : * --------
48 : *
49 : * ESOPE + FORTRAN77
50 : *
51 : ************************************************************************
52 : *
53 : MLREEL = IPO1
54 : SEGACT MLREEL
55 : LDIM = PROG(/1)
56 : JG = LDIM
57 : SEGINI MLREE1
58 : IPO2 = MLREE1
59 : *
60 : IF (ICALC.EQ.1) THEN
61 : DO 10 I = 1,LDIM
62 : XX = MLREEL.PROG(I)
63 : MLREE1.PROG(I) = COS(XX * XPI / 180.D0)
64 : 10 CONTINUE
65 : * END DO
66 : ELSE IF (ICALC.EQ.2) THEN
67 : DO 20 I = 1,LDIM
68 : XX = MLREEL.PROG(I)
69 : MLREE1.PROG(I) = SIN(XX * XPI / 180.D0)
70 : 20 CONTINUE
71 : * END DO
72 : ELSE IF (ICALC.EQ.7) THEN
73 : DO 70 I = 1,LDIM
74 : XX = MLREEL.PROG(I)
75 : MLREE1.PROG(I) = EXP(XX)
76 : 70 CONTINUE
77 : * END DO
78 : ELSE IF (ICALC.EQ.8) THEN
79 : DO 80 I = 1,LDIM
80 : XX = MLREEL.PROG(I)
81 : IF (XX.GT.0.D0) THEN
82 : MLREE1.PROG(I) = LOG(XX)
83 : ELSE
83 : CALL ERREUR (36)
84 : *+* NUMERO D'ERREUR PAS FIGNOLE.
85 : IPO2 = 0
86 : RETURN
87 : END IF
88 : 80 CONTINUE
89 : * END DO
90 : ELSE IF (ICALC.EQ.9) THEN
91 : DO 90 I = 1,LDIM
92 : XX = MLREEL.PROG(I)
93 : MLREE1.PROG(I) = ABS(XX)
94 : 90 CONTINUE
95 : * END DO
96 : ELSE IF (ICALC.EQ.10) THEN
97 : DO 100 I = 1,LDIM
98 : XX = MLREEL.PROG(I)
99 : MLREE1.PROG(I) = COSH(XX)
100 : 100 CONTINUE
101 : * END DO
102 : ELSE IF (ICALC.EQ.11) THEN
103 : DO 110 I = 1,LDIM
104 : XX = MLREEL.PROG(I)
105 : MLREE1.PROG(I) = SINH(XX)
106 : 110 CONTINUE
107 : * END DO
108 : ELSE IF (ICALC.EQ.12) THEN
109 : DO 120 I = 1,LDIM
110 : XX = MLREEL.PROG(I)
111 : MLREE1.PROG(I) = TANH(XX)
112 : 120 CONTINUE
113 : * END DO
114 : ELSE IF (ICALC.EQ.13) THEN
115 : DO 130 I = 1,LDIM
116 : XX = MLREEL.PROG(I)
117 : YY = ERGAUS(XX)
118 : MLREE1.PROG(I) = YY
119 : 130 CONTINUE
120 : * END DO
121 : ELSE
122 : * EN FAIT, CE CAS NE PEUT PAS ARRIVER EN DEHORS DE LA PERIODE
123 : * DE TEST.
124 : IPO2 = 0
125 : ENDIF
126 : *
127 : SEGDES,MLREE1,MLREEL
128 : *
129 : END
130 :
131 :
132 :
133 :
134 :
© Cast3M 2003 - All rights reserved.
Disclaimer