C OPCHPO SOURCE GOUNAND 11/04/21 21:15:26 6946 SUBROUTINE OPCHPO(IPO1,IEPS,IRET) C======================================================================= C EFFECTUE DIVERSES OPERATIONS SUR LES CHPOINTS C ENTREES C IPO1=POINTEUR SUR LE CHAMPOINT C IEPS= 1 COSINUS C = 2 SINUS C = 3 TANGENTE (OPERATION FAITE DANS TANGEN.ESO) C = 4 ARCOSINUS (OPERATION FAITE DANS ARCCS.ESO) C = 5 ARCSINUS (OPERATION FAITE DANS ARCCS.ESO) C = 6 ARCTANGENTE C = 7 EXPONENTIELLE C = 8 LOGARITHME C = 9 VALEUR ABSOLUE C =10 COSINUS HYPERBOLIQUE C =11 SINUS HYPERBOLIQUE C =12 TANGENTE HYPERBOLIQUE C =13 ERF (FONCTION D'ERREUR) C SORTIES C IRET=POINTEUR SUR LE CHAMPOINT RESULTANT C =0 SI L OPERATION EST IMPOSSSIBLE C C CODE EBERSOLT AVRIL 86 C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC CCREEL -INC SMCHPOI C Conversion des angles (DEGres en RADians & RADians en DEGres) C PARAMETER ( cDegRad = 0.01745329251994329576923690768488612D0 , C & cRadDeg = 57.29577951308232087679815481410517040D0 ) C IRET=0 C C Facteurs de conversion des angles C XCONV = cDegRad C XVNOC = cRadDeg XCONV = XPI / 180.D0 XVNOC = 180.D0 / XPI C MCHPO1=IPO1 SEGINI,MCHPOI=MCHPO1 NSOUPO=IPCHP(/1) DO 72 IA=1,NSOUPO MSOUP1=IPCHP(IA) SEGINI,MSOUPO=MSOUP1 IPCHP(IA)=MSOUPO MPOVA1=IPOVAL SEGINI,MPOVAL=MPOVA1 IPOVAL=MPOVAL SEGDES,MSOUPO N =VPOCHA(/1) NC=VPOCHA(/2) GOTO( 1, 2,66,66,66, 6, 7, 8, 9,10,11,12,13),IEPS 66 CONTINUE SEGSUP,MPOVAL CALL ERREUR(19) GOTO 666 C C COSINUS C 1 CONTINUE DO 100 IC=1,NC DO 101 IB=1,N VPOCHA(IB,IC)=COS(XCONV*VPOCHA(IB,IC)) 101 CONTINUE 100 CONTINUE GOTO 166 C C SINUS C 2 CONTINUE DO 200 IC=1,NC DO 201 IB=1,N VPOCHA(IB,IC)=SIN(XCONV*VPOCHA(IB,IC)) 201 CONTINUE 200 CONTINUE GOTO 166 C C TANGENTE C C NOTE : OPERATION EFFECTUEE DANS LE SOUS-PROGRAMME TANGEN C APPELE DIRECTEMENT PAR PILOT C 3 CONTINUE GOTO 166 C C ARCOSINUS C C NOTE : OPERATION EFFECTUEE DANS LE SOUS-PROGRAMME ARCCS(1) C APPELE DIRECTEMENT PAR PILOT C 4 CONTINUE GOTO 166 C C ARCSINUS C C NOTE : OPERATION EFFECTUEE DANS LE SOUS-PROGRAMME ARCCS(2) C APPELE DIRECTEMENT PAR PILOT C 5 CONTINUE GOTO 166 C C ARCTANGENTE C 6 CONTINUE DO 600 IC=1,NC DO 601 IB=1,N VPOCHA(IB,IC)=XVNOC*ATAN(VPOCHA(IB,IC)) 601 CONTINUE 600 CONTINUE GOTO 166 C C EXPONENTIELLE C 7 CONTINUE DO 700 IC=1,NC DO 701 IB=1,N VPOCHA(IB,IC)=EXP(VPOCHA(IB,IC)) 701 CONTINUE 700 CONTINUE GOTO 166 C C LOGARITHME C 8 CONTINUE DO 800 IC=1,NC DO 801 IB=1,N XX=VPOCHA(IB,IC) * IF (XX.LT.XPETIT) THEN CALL ERREUR(36) SEGSUP MPOVAL GOTO 666 ENDIF * VPOCHA(IB,IC)=LOG(XX) 801 CONTINUE 800 CONTINUE GOTO 166 C C VALEUR ABSOLUE C 9 CONTINUE DO 900 IC=1,NC DO 901 IB=1,N VPOCHA(IB,IC)=ABS(VPOCHA(IB,IC)) 901 CONTINUE 900 CONTINUE GOTO 166 C C COSINUS HYPERBOLIQUE C 10 CONTINUE DO 1000 IC=1,NC DO 1001 IB=1,N VPOCHA(IB,IC)=COSH(VPOCHA(IB,IC)) 1001 CONTINUE 1000 CONTINUE GOTO 166 C C SINUS HYPERBOLIQUE C 11 CONTINUE DO 1100 IC=1,NC DO 1101 IB=1,N VPOCHA(IB,IC)=SINH(VPOCHA(IB,IC)) 1101 CONTINUE 1100 CONTINUE GOTO 166 C C TANGENTE HYPERBOLIQUE C 12 CONTINUE DO 1200 IC=1,NC DO 1201 IB=1,N VPOCHA(IB,IC)=TANH(VPOCHA(IB,IC)) 1201 CONTINUE 1200 CONTINUE GOTO 166 C C FONCTION D'ERREUR ERF C 13 CONTINUE DO 1300 IC=1,NC DO 1301 IB=1,N XX=ERGAUS(VPOCHA(IB,IC)) VPOCHA(IB,IC)=XX 1301 CONTINUE 1300 CONTINUE * GOTO 166 * 166 CONTINUE SEGDES MPOVAL 72 CONTINUE 666 CONTINUE IF (IERR.NE.0) THEN SEGSUP,MCHPOI IRET = 0 ELSE SEGDES,MCHPOI IRET = MCHPOI ENDIF RETURN END