FORTRAN77で定義した関数をC言語で呼び出したいです。
float型では呼び出した時は問題なかったのですが、double型では呼び出すと値がおかしくなります。fortranでの文法が間違っているのでしょうか?同じ計算式のはずが値が変わります。
FORTRAN77
1 DOUBLE PRECISION FUNCTION DEFINITEINTEGRAL(A,B) 2 DEFINITEINTEGRAL=sin(B)-sin(A) 3 RETURN 4 END
C言語
1#include<stdio.h> 2#include<stdlib.h> 3#include<math.h> 4 5extern double definiteintegral_(double *,double *); 6 7int main(void) 8{ 9 double a = 0.15; 10 double b = 3.42; 11 double x; 12 13 x = definiteintegral_(&a,&b); 14 double y = sin(b)-sin(a); 15 16 printf("%lf\n", x); //-0.957672 17 printf("%lf\n", y); //-0.424263 18 19 return 0; 20} 21
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。