Download oplree.eso

Back to the list

   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