我目前正在对32/64位上所有主要操作系统的BLAS/LAPACK (Fortran库)的本机绑定进行修改,将其作为一个库。
然而,我已经开始遇到一些与UNIX/Windows世界和Fortran / C之间的数据类型差异有关的问题。
和数据类型的表是非常非公开的,因为大小。
是否有一个规范的源(或者我们可以通过引用权威源来创建一个源?)在实践中的所有位大小中,Fortran和C?主要的OSes上的原始数据类型
或者,至少就C类型而言,Fortran类型。
即用下列列填充表(开始时有几列):
OS ARCH Language Type Bits
Linu
我在装有英特尔11.0编译器的Linux计算机上使用CMake 2.8.7。我是第一次尝试使用CMake,因为我想在Windows机和Linux机上构建这个项目。
我想先使用一种简单的方法,并使用一个标准的Hello World示例: My src/HelloWorld.f90:
!Test helloworld in Fortran using Cmake
program hello
print *, "Hello World!"
end program hello
我的主CMakeLists.txt:
# States that CMake required ver
我正在用C++编写一个程序,它调用了我用Fortran编写的一些函数。我打算测试一个非常基本的例子,在这个例子中,我从C++代码中调用了一个名为toRadians的函数:
real function toRadian(degree)
implicit none
real, intent(in) :: degree
real :: radians
radians = (degree*PI)/180
return
end function toRadian
所以我想知道,这是“值得的”吗?当我完成所有的事情后,这个函数将在Fortran中被调用,大部分计算都将在Fortra
我希望能够在Fortran应用程序中调用网络函数。我的老板想让我用Fortran做所有的事情,而不是用C和Fortran。我们已经在Windows上使用PGI的Fortran编译器完成了应用程序的一个版本。我们将把它转移到Linux上,在那里我们可能会使用他们的编译器。现在,我正在使用gfortran。
我已经为这些网络调用创建了一个接口,一切都可以编译和链接。下面的代码类似于我正在做的事情,除了接口和常量在一个模块中。
PROGRAM MAIN
INTEGER,PARAMETER ::AF_INET = 2
INTEGER,PARAMETER ::SOCK_STREAM
我已经设法用f2py手动包装了一组Fortran90源代码。为此,我生成了签名文件,如中所述:,我可以获得一个.so,我可以从一些Python接口文件中调用它。
现在,我想从它创建一个包,它将自动构建Fortran扩展。包含Fortran源代码和签名文件的文件夹中唯一添加的内容现在是一个包含以下内容的setup.py文件:
from numpy.distutils.core import setup, Extension
from numpy.distutils.misc_util import Configuration
DISTNAME = 'greengard'
de
在Fortran2003程序中,我希望创建一个派生类型,其中包含一个具有asynchronous属性的可分配数组:
module async_in_type
type async_array
integer, dimension(:), allocatable, asynchronous :: a
end type async_array
end module async_in_type
当我试图用GCC编译上面的代码时,我会收到以下错误消息:
$ gfortran -c -Wall -Wextra async_in_type.F90
GNU Fortran (GCC) 4.1
尊敬的先生/女士,
我有一个fortran exe,它接受一个输入文件,并通过对输入文件做一些操作来产生输出文件。我可以在linux终端运行这个命令。(我认为fortran编译器在Linux中是可用的).Now请建议如何使用java(在Linux机器上)运行这个fortran可执行文件。
我尝试的是,
String cmd="fortranExe arg1 arg2";
//fortranExe=exe path
//arg1,arg2 are arguments to fortran executable program
Process p=Runtime.getRu
在从fortran子程序调用C子程序时,我在控制台上显示值时遇到了问题。我在调用C子程序之前和之后都有print语句,以及C子例程中的print语句。但是,在执行程序时,C语句打印在两个Fortran语句之前,而不是在它们之间。我仔细研究了代码,其他地方也没有调用C子程序,因此没有明显的理由在Fortran语句之前打印c语句。我创建了一个更简单的Fortran程序(下面)来尝试重现问题,但是代码按照预期的顺序执行了print语句。我想知道是否有人对什么是问题有深刻的见解。谢谢。
示例Fortran代码:
program test
print *, 'Calling C
我有一些用英特尔fortran编译器ifort编译的fortran代码。当我使用gprof进行配置文件测试时,我发现大部分时间都用于IO操作,我想找到文件的结尾,但我找不到更多关于这方面的文档:
index % time self children called name
<spontaneous>
[1] 20.6 0.07 0.00 _IO_wfile_seekoff [1]
----------------