&引用;正在尝试分配已分配的变量“;在Fortran代码中,从C++; < >我通过调用FORTRAN库和C++代码来调用C++中的FORTRAN子程序。但是,在使用链接成功编译后,我运行程序并收到以下错误: Fortran runtime error: Attempting to allocate already allocated variable 'variableName'
在fortran文件中,这看起来像:&引用;正在尝试分配已分配的变量“;在Fortran代码中,从C++; < >我通过调用FORTRAN库和C++代码来调用C++中的FORTRAN子程序。但是,在使用链接成功编译后,我运行程序并收到以下错误: Fortran runtime error: Attempting to allocate already allocated variable 'variableName',c++,fortran,C++,Fortran,在fortran文件中,这看起来像: allocate(variableName(ns),variableName2(nr)) variableName = [(j,j=1,ns)] variableName2 = [(j,j=1,nr)] 然后在我相当大的C++库中,我确实有一个变量叫做“变量名”,这个变量也在FORTRAN方面。有没有其他方法能绕过这个问题,而不是Gorp FORTRAN库源,并改变特定变量的名称?< P>确实问题是C++部分尝试调用FO
allocate(variableName(ns),variableName2(nr))
variableName = [(j,j=1,ns)]
variableName2 = [(j,j=1,nr)]
然后在我相当大的C++库中,我确实有一个变量叫做“变量名”,这个变量也在FORTRAN方面。有没有其他方法能绕过这个问题,而不是Gorp FORTRAN库源,并改变特定变量的名称?
< P>确实问题是C++部分尝试调用FORTRAN例程数次(根本不需要),然后FORTRAN方无法处理这个。p>但是现在这个问题解决了 我不确定这是否会让您不用更改代码,但您可以在fortran的iso_c_绑定中使用
BIND(c,name='variableName\u F')::variableName
@EdSmith:这看起来像是一个答案。这看起来不像答案。很可能这个bug在Fortran部分的某个地方没有显示出来。也许子程序不能被调用两次或类似的东西。