我继承了一个为VisualStudio2010/Intel2013上运行的VisualStudio项目,这是C++和Fortran项目的组合。我的任务是进行必要的修改,以便与IntelFortran2017一起使用VisualStudio2015进行构建和运行。模式。对于所有引用C++.lib项目的Fortran项目,我会收到以下消息:MSIL.netmoduleormodulecompiledwith/GLfound;restartinglinkwith/LTCG;add/LTCGtothelinkcommandlinetoimprovelinkerperformancefatalerror
我正在研究IBMBluegene/Q系统,我想使用Fortran创建一个文件夹。由于Bluegene不允许使用通常的“呼叫系统”,因此我必须求助于其内在功能:CALLmkdir("/home/luc/testfiles\0",%val(755))如下所示:https://wiki.scinet.utoronto.ca/wiki/images/2/23/bgqfcompiler.pdf这会创建文件夹,但是权限都是错误的。如何在IBMSBluegene/Q系统上使用适当的权限创建一个文件夹?他们所有的文档都令人恐惧,我找不到一个工作的例子。看答案MKDIR是C库中实现的POSIX函数。您可以在此处
我正在努力创建一种让多个Fortran进程相互通信的方法。这将用于模拟,其中一台机器正在运行模拟过程,而另一台机器(或可能是机器集群)将为模拟过程生成合成数据。即:模拟进程(sp)向生成进程(gp)请求一条信息。gp要么找到请求的信息,要么创建它并将其返回给sp。这两个过程都非常密集,这就是为什么它们将在多台机器之间拆分。无论如何,在做了一些研究之后,我能为这个IPC想出的最好方法是同时使用TCP和IP。在做了更多研究后,我得出了以下代码(取自here):模块MODULEMSockets!Interfacetolibmsock!AlibraryforTCP/IPclient-serve
我有一个使用Python代码创建的二进制文件。这段代码主要编写了一堆任务来预处理一组数据文件。我现在想用Fortran阅读这个二进制文件。二进制文件的内容是简单格式的点坐标,例如:点数,x0,y0,z0,x1,y1,z1,....这些二进制文件是使用numpy中的“tofile”函数创建的。到目前为止,我在Fortran中有以下代码:integer::intValuedoubleprecision::dblValueinteger::counterinteger::checkopen(unit=10,file='file.bin',form='unformatted',status='
我正在使用f2py在Fortran中创建一个Python模块。如果在Fortran模块中遇到错误,我想在Python程序中产生错误(包括错误消息)。考虑以下示例:Fortran代码(test.f):subroutinefoo(a,m)integer::m,iinteger,dimension(m)::a!f2pyintent(in)::m!f2pyintent(in,out)::a!f2pyintent(hide),depend(a)::m=shape(a)doi=1,mif(a(i).eq.0)thenprint*,'ERRORHERE..?'endifa(i)=a(i)+1endd
我需要从Python中的Fortran模块调用例程。我用f2py和python2.7做到了。它运行良好。现在,我必须将它与python3一起使用,但f2py似乎与python3不兼容。我看到有些人使用一个名为f2py3的版本,但它既不能通过pip获得,也不能通过macports获得(我使用的是Mac)。另外,python3+numpy+f2pyseemtobealreadyintegratedinFedora.有没有人设法在Mac上将f2py3(或其等价物)与python3一起使用?如果不是,您建议将Fortran库与python3链接起来的替代解决方案是什么?
在python中(使用numpy),我可以将数组广播为不同的形状:>>>importnumpyasnp>>>a=np.array([2,3,4])>>>b=np.zeros((3,2))>>>b[:,:]=np.zeros((3,2))>>>b[:,:]=a[:,np.newaxis]#>>barray([[2.,2.],[3.,3.],[4.,4.]])>>>c=np.zeros((2,3))>>>c[:,:]=a[np.newaxis,:]>>>carray([[2.,3.,4.],[2.,3.,4.]])有什么方法可以在fortran中达到同样的效果吗?我有一个子例程,它期望传入
我正在尝试计算大约十万个点之间的所有距离。我有以下用Fortran语言编写并使用f2py编译的代码:C1234567C123456789012345678901234567890123456789012345678901234567890123456789012subroutinedistances(coor,dist,n)doubleprecisioncoor(n,3),dist(n,n)integerndoubleprecisionx1,y1,z1,x2,y2,z2,diff2cf2pyintent(in)::coor,distcf2pyintent(in,out)::distcf
我有一个要在Python中使用的Fortran子例程。subroutinecreate_hist(a,n,dr,bins,hist)integer,intent(in)::nreal(8),intent(in)::a(n)real(8),intent(in)::drinteger,intent(out),allocatable::hist(:)real(8),intent(out),allocatable::bins(:)n_b=n_bins(a,n,dr)!afunctioncalculatingthenumberofbinsallocate(bins(n_b+1))allocate
我想将硬盘上的一个大fortran记录(12G)映射到一个numpy数组。(映射而不是加载以节省内存。)存储在fortranrecord中的数据是不连续的,因为它被记录标记分开了。记录结构为“标记、数据、标记、数据、...、数据、标记”。数据区域和标记的长度是已知的。标记之间的数据长度不是4字节的倍数,否则我可以将每个数据区域映射到一个数组。在memmap中设置offset可以跳过第一个标记,是否可以跳过其他标记并将数据映射到数组?对于可能出现的歧义表达表示歉意,并感谢任何解决方案或建议。5月15日编辑这些是Fortran未格式化的文件。record中存储的数据是一个(1024^3)*