Remove references to MALLOC.lib + old useless Makefile.in
[scilab.git] / scilab / modules / dynamic_link / demos / call_fortran.sce
1 //
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2009 - DIGITEO - Allan CORNET
4 //
5 // This file is distributed under the same license as the Scilab package.
6 //
7
8 if haveacompiler() then
9
10 //           CALLING EXTERNAL FORTRAN SUBROUTINE
11
12 foof = ['      subroutine foof(a,b,c)';
13         '      double precision  a,b,c';
14         '      c=a+b ';
15         '      return'; '       end'];
16
17   mprintf('\n');
18   mprintf(gettext('Fortran subroutine to call in scilab.\n'));
19   
20   disp(foof);
21
22 // we use TMPDIR for compilation 
23         
24 if ~c_link('foof') then
25   path = pwd(); 
26   chdir(TMPDIR); 
27   mputl(foof,'foof.f');
28   
29   mprintf('\n');
30   mprintf(gettext('Call ilib_for_link to build fortran subroutine.\n'));
31   
32   ilib_for_link(['foof'],'foof.f',[],"f");
33   exec loader.sce ;
34   chdir(path) 
35 end     
36
37 //Z = X+Y by fortran subroutine
38 X = 5;
39 Y = 7;
40
41 mprintf('\n');
42 mprintf(gettext('Call Fortran subroutine. Z = X+Y'));
43 mprintf('\n');
44 mprintf(gettext('with X = %d'), X);
45 mprintf('\n');
46 mprintf(gettext('with Y = %d'), Y);
47 mprintf('\n');
48 mprintf("Z = call(''foof'', X, 1, ''d'', Y, 2, ''d'', ''out'', [1,1], 3, ''d'');");
49 mprintf('\n');
50 Z = call('foof', X, 1, 'd', Y, 2, 'd', 'out', [1,1], 3, 'd');
51 mprintf(gettext('result Z = %d'), Z);
52 mprintf('\n');
53
54 end