mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2025-01-01 06:23:39 +01:00
c977aa998f
Replace amos with slatec
36 lines
1.1 KiB
Fortran
36 lines
1.1 KiB
Fortran
*DECK DSINDG
|
|
DOUBLE PRECISION FUNCTION DSINDG (X)
|
|
C***BEGIN PROLOGUE DSINDG
|
|
C***PURPOSE Compute the sine of an argument in degrees.
|
|
C***LIBRARY SLATEC (FNLIB)
|
|
C***CATEGORY C4A
|
|
C***TYPE DOUBLE PRECISION (SINDG-S, DSINDG-D)
|
|
C***KEYWORDS DEGREES, ELEMENTARY FUNCTIONS, FNLIB, SINE, TRIGONOMETRIC
|
|
C***AUTHOR Fullerton, W., (LANL)
|
|
C***DESCRIPTION
|
|
C
|
|
C DSINDG(X) calculates the double precision sine for double
|
|
C precision argument X where X is in degrees.
|
|
C
|
|
C***REFERENCES (NONE)
|
|
C***ROUTINES CALLED (NONE)
|
|
C***REVISION HISTORY (YYMMDD)
|
|
C 770601 DATE WRITTEN
|
|
C 890531 Changed all specific intrinsics to generic. (WRB)
|
|
C 890531 REVISION DATE from Version 3.2
|
|
C 891214 Prologue converted to Version 4.0 format. (BAB)
|
|
C***END PROLOGUE DSINDG
|
|
DOUBLE PRECISION X, RADDEG
|
|
SAVE RADDEG
|
|
DATA RADDEG / 0.0174532925 1994329576 9236907684 886 D0 /
|
|
C***FIRST EXECUTABLE STATEMENT DSINDG
|
|
DSINDG = SIN (RADDEG*X)
|
|
C
|
|
IF (MOD(X,90.D0).NE.0.D0) RETURN
|
|
N = ABS(X)/90.D0 + 0.5D0
|
|
N = MOD (N, 2)
|
|
IF (N.EQ.0) DSINDG = 0.D0
|
|
IF (N.EQ.1) DSINDG = SIGN (1.0D0, DSINDG)
|
|
C
|
|
RETURN
|
|
END
|