/**************************************************************************/ /* */ /* OCaml */ /* */ /* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ /* */ /* Copyright 2000 Institut National de Recherche en Informatique et */ /* en Automatique. */ /* */ /* All rights reserved. This file is distributed under the terms of */ /* the GNU Lesser General Public License version 2.1, with the */ /* special exception on linking described in the file LICENSE. */ /* */ /**************************************************************************/ #include #include #include extern void filltab_(void); extern void printtab_(float * data, int * dimx, int * dimy); extern float ftab_[]; value fortran_filltab(value unit) { filltab_(); #if defined(_MSC_VER) && !defined(__clang__) #pragma warning(push) #pragma warning(disable : 5287) #endif return caml_ba_alloc_dims(CAML_BA_FLOAT32 | CAML_BA_FORTRAN_LAYOUT, 2, ftab_, (intnat)8, (intnat)6); #if defined(_MSC_VER) && !defined(__clang__) #pragma warning(pop) #endif } value fortran_printtab(value ba) { int dimx = Caml_ba_array_val(ba)->dim[0]; int dimy = Caml_ba_array_val(ba)->dim[1]; printtab_(Caml_ba_data_val(ba), &dimx, &dimy); return Val_unit; }