小编Ada*_* A.的帖子

将数组从C/C++传递给Fortran并返回一个计算数组

我试图将数组从C/C++传递到Fortran 2003模块,并将计算值返回到C/C++.我已经能够传递并返回单个值(标量),但是来回获取数组很难.我在标量值上发现了很多线程,并且我已经成功地完成了这些工作.

在我的工作标量函数之后,我已经模拟了基于数组的函数.

我正在使用gcc/gfortran.

这是Fortran模块(ConvertUnitsLib.f03).

module ConvertUnitsLib

use :: iso_c_binding ! for C/C++ interop
real(c_double), bind(c) :: degF, degC

public DegCtoF

contains

!
! Convert temperature degrees Celsius Fahrenheit
!
real(kind = c_double) function DegCtoF(degC) result(degF) &
    & bind(c, name = "DegCtoF")

    real(c_double), intent(in), dimension(:) :: degC
    real(c_double), dimension(size(degC)) :: degF

    do i = 1, size(degC)
        degF(i) = ( degC(i) * 1.8 ) + 32
    end do

end function DegCtoF


! End of module
end module ConvertUnitsLib
Run Code Online (Sandbox Code Playgroud)

和C/C++,(CFort.cpp) …

c c++ arrays fortran fortran-iso-c-binding

8
推荐指数
2
解决办法
3157
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

fortran ×1

fortran-iso-c-binding ×1