Mercurial > hg > octave-nkf
view examples/fortdemo.cc @ 6909:fc55a5e1760b ss-2-9-14
[project @ 2007-09-17 20:47:40 by jwe]
author | jwe |
---|---|
date | Mon, 17 Sep 2007 20:47:41 +0000 |
parents | d2bb3b8a8d20 |
children | 4270ded9ddc6 |
line wrap: on
line source
#include <octave/oct.h> #include <octave/f77-fcn.h> extern "C" { F77_RET_T F77_FUNC (fortsub, FORTSUB) (const int&, double*, F77_CHAR_ARG_DECL F77_CHAR_ARG_LEN_DECL); } DEFUN_DLD (fortdemo , args , , "Fortran Demo.") { octave_value_list retval; int nargin = args.length(); if (nargin != 1) print_usage (); else { NDArray a = args(0).array_value (); if (! error_state) { double *av = a.fortran_vec (); octave_idx_type na = a.nelem (); OCTAVE_LOCAL_BUFFER (char, ctmp, 128); F77_XFCN (fortsub, FORTSUB, (na, av, ctmp F77_CHAR_ARG_LEN (128))); if (f77_exception_encountered) error ("fortdemo: error in fortran"); else { retval(1) = std::string (ctmp); retval(0) = a; } } } return retval; }