class JavaSumme {
int n;
double[] X; double[] Y;
double sp;
public JavaSumme(){
n=3;
X=null;
Y=null;
}
public void run(){
double[] X = new double[n];
double[] Y = new double[n];
double[] erg = new double[n];
X[0]=4;X[1]=2;X[2]=3;
Y[0]=1;Y[1]=6;Y[2]=3;
erg=myjavasumme(X, Y);
System.out.println("Skalarprodukt:ende");
System.out.println("nach mysp:0="+erg[0]);
System.out.println("nach mysp:1="+erg[1]);
System.out.println("nach mysp:1="+erg[2]);
//System.out.println(sp);
}
public static void main(String [] args){
JavaSumme meinsp = new JavaSumme();
meinsp.run();
}
public double[] myjavasumme(double[] x, double[] y){
//double ssp;
int dim=x.length;
double[] erg;
erg=summe(x,y,dim);
System.out.println("nach mysp:dim="+dim);
System.out.println("nach mysp:0="+erg[0]);
System.out.println("nach mysp:1="+erg[1]);
return(erg);
}
static{
// System.loadLibrary("meinebib");
System.load("/home/ries/jcppf90summe/libmeinebib.so");
}
public native double[] summe(double[] x, double[] y, int n);
}
|
#include |
subroutine mysp3(x,y,n,summe)
implicit none
integer n
double precision :: summe(n)
double precision :: x(n), y(n)
integer i
do i=1, n
summe(i)=x(i)+y(i)
end do
n=n+1
end subroutine mysp3
|
export .:LD_LIBRARY_PATH=/opt/lib/NAGWare:$LD_LIBRARY_PATH
javac JavaSumme.java
javah JavaSumme
f95 -c mysp3.f90
c++ -shared -o libmeinebib.so -I/usr/lib/jdk1.3.1/include \
-I/usr/lib/jdk1.3.1/include/linux \
javasumme.cpp mysp3.o -L/opt/lib/NAGWare -lf95 \
java JavaSumme
|