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 |