Fortran: Difference between revisions

Jump to navigation Jump to search
22 bytes removed ,  13 July 2020
→‎Fortran Code: Update Fortran code.
(→‎Header file: Update.)
(→‎Fortran Code: Update Fortran code.)
Line 74: Line 74:
=== Fortran Code ===
=== Fortran Code ===


{{Code|octave_file_io_example.f90|<syntaxhighlight lang="fortran" style="font-size:13px">
Fortran main program to read the plain ASCII matrix with the help of the Octave-C++ function.  The read in matrix is printed to the screen.
 
{{File|octave_file_io_example.f90|<syntaxhighlight lang="fortran">
program octave_file_io_example
program octave_file_io_example
 
 
   use iso_c_binding
   use iso_c_binding
   
 
   implicit none
   implicit none


   interface  
   interface
     function octave_load (filename, varname, data, numel) bind(c, name="octave_load")
     function octave_load (filename, data, numel) bind(c, name="octave_load")
     
 
       use iso_c_binding
       use iso_c_binding
       implicit none
       implicit none


       integer(c_int) :: octave_load
       integer(c_int) :: octave_load
     
 
       character(kind=c_char), intent(in) :: filename(*)
       character(kind=c_char), intent(in) :: filename(*)
      character(kind=c_char), intent(in) :: varname(*)
 
     
       type(c_ptr), intent(out) :: data
       type(c_ptr), intent(out) :: data
       integer(c_int), intent(out) :: numel
       integer(c_int), intent(out) :: numel
     
 
     end function octave_load
     end function octave_load
   end interface
   end interface
 
 
   integer(c_int) :: res  
   integer(c_int) :: res
   type(c_ptr) :: data
   type(c_ptr) :: data
   real(c_double), pointer :: fdata(:)
   real(c_double), pointer :: fdata(:)
   integer(c_int) :: numel
   integer(c_int) :: numel


   res = octave_load (c_char_'pippo.octxt' // c_null_char, c_char_'A' // c_null_char, data, numel)
   res = octave_load (c_char_'data.txt' // c_null_char, data, numel)
 
 
   call c_f_pointer (data, fdata, (/numel/))
   call c_f_pointer (data, fdata, (/numel/))
 
 
   write (*,*) fdata
   write (*,*) fdata


end program octave_file_io_example
end program octave_file_io_example
</syntaxhighlight>}}
</syntaxhighlight>}}


=== Compiling the code ===
=== Compiling the code ===

Navigation menu