For Programmers: Free Programming Magazines  


Home > Archive > Fortran > May 2005 > implementation of DACOSD









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author implementation of DACOSD
Damien MATTEI

2005-05-27, 8:57 am

i have this error when porting a Fortran program from tru 64 to Linux:

[dma@alhena SIMECAFLD]$ make
f77 long_onde.F -o long_onde.o -c -Wall
long_onde.F: In subroutine `long_onde':
long_onde.F:423: warning:
radrad=dacosd(z/rayray) +i
^
Reference to unimplemented intrinsic `DACOSD' at (^) (assumed EXTERNAL)
long_onde.F:423:
radrad=dacosd(z/rayray) +i
^
Invalid declaration of or reference to symbol `dacosd' at (^) [initially
seen at (^)]
make: *** [long_onde.o] Error 1

i assume this due to dacosd not yet implemented under gcc
(see http://gcc.gnu.org/onlinedocs/gcc-3...-Intrinsic.html)

does anyone have an implementation of the function DACOSD ?

in a way as simple as dsind and dcosd can be implemented:

* ****************************************
*************************
real*8 FUNCTION DSIND( angle )
* ****************************************
*************************
implicit none
real*8 angle
real*8 pi

if( angle .eq. 180.0 ) then
dsind = 0.
else
pi=acos(0.)*2
dsind = dsin( angle * pi / 180.0 )
endif
return
end

* ****************************************
*************************
real*8 FUNCTION DCOSD( angle )
* ****************************************
*************************
implicit none
real*8 angle
real*8 pi

if( angle .eq. 90.0 ) then
dcosd = 0.
else if( angle .eq. 270.0 ) then
dcosd = 0.
else
pi=acos(0.)*2
dcosd = dcos( angle * pi / 180.0 )
endif
return
end

any help greatly appreciated

Damien
--

Damien MATTEI

email: Damien (dot) Mattei (AT) obs*azur (dot) fr
and replace * with -
Herman D. Knoble

2005-05-27, 4:01 pm

Damien: For work like this an example (using a module) may help:

http://ftp.cac.psu.edu/pub/ger/fort...thConstants.f95

Skip Knoble

On Fri, 27 May 2005 12:18:05 +0200, Damien MATTEI <donotreply@unice.fr> wrote:

-|i have this error when porting a Fortran program from tru 64 to Linux:
-|
-|[dma@alhena SIMECAFLD]$ make
-|f77 long_onde.F -o long_onde.o -c -Wall
-|long_onde.F: In subroutine `long_onde':
-|long_onde.F:423: warning:
-| radrad=dacosd(z/rayray) +i
-| ^
-|Reference to unimplemented intrinsic `DACOSD' at (^) (assumed EXTERNAL)
-|long_onde.F:423:
-| radrad=dacosd(z/rayray) +i
-| ^
-|Invalid declaration of or reference to symbol `dacosd' at (^) [initially
-|seen at (^)]
-|make: *** [long_onde.o] Error 1
-|
-|i assume this due to dacosd not yet implemented under gcc
-|(see http://gcc.gnu.org/onlinedocs/gcc-3...-Intrinsic.html)
-|
-|does anyone have an implementation of the function DACOSD ?
-|
-|in a way as simple as dsind and dcosd can be implemented:
-|
-|* ****************************************
*************************
-| real*8 FUNCTION DSIND( angle )
-|* ****************************************
*************************
-| implicit none
-| real*8 angle
-| real*8 pi
-|
-| if( angle .eq. 180.0 ) then
-| dsind = 0.
-| else
-| pi=acos(0.)*2
-| dsind = dsin( angle * pi / 180.0 )
-| endif
-| return
-| end
-|
-|* ****************************************
*************************
-| real*8 FUNCTION DCOSD( angle )
-|* ****************************************
*************************
-| implicit none
-| real*8 angle
-| real*8 pi
-|
-| if( angle .eq. 90.0 ) then
-| dcosd = 0.
-| else if( angle .eq. 270.0 ) then
-| dcosd = 0.
-| else
-| pi=acos(0.)*2
-| dcosd = dcos( angle * pi / 180.0 )
-| endif
-| return
-| end
-|
-|any help greatly appreciated
-|
-|Damien

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com