Fortran
空花缱绻三分
逢人不说人间事,便是人间无事人。
展开
-
Fortran IMSL库申请学生许可安装
把下载下来的许可证改名为imsl_eval,然后放到C:\Program Files (x86)\RogueWave\license即安装目录下的license文件夹中,之前7.0版本文件夹叫VNI现在已经改名为RogueWave了。安装好后,配置vs2022,一切都和上面的blog中的配置方法一样,注意最终的文件夹是不变的(lib,static,dll等),但是前面的路径肯定有所改变。大概等了三天左右,官方会回复到你的学生邮箱中,会发一个下载地址,附件为许可证。原创 2023-09-27 20:53:05 · 655 阅读 · 1 评论 -
Fortran 微分方程求解 --ODEPACK
最近涉及到使用Fortran对微分方程求解,我们知道MATLAB已有内置的函数,比如ode家族,ode15s,对应着不同的求解办法。mf:是求解方法,其中如果等于21,24需要使用者自己提供雅各比矩阵,如示例代码中jex函数中那样,如果等于10,22,25则不需要自己写,但是jex函数还是需要定义,就是函数框架,函数名,变量声明就可。1.我使用的是vs2022,比较简单的用法就是把,src文件夹所有的文件复制到和项目一个文件夹即可,将M_odepack.f90文件放入到项目中,这样就可以用了。原创 2023-08-26 16:10:51 · 1233 阅读 · 0 评论 -
VS2022 Fortran配置MKL 调用lapack 64位库
下载64位的,然后就是添加文件所在的文件夹,以及添加lib,就可以直接使用lapack中的函数,但是现在Oneapi中集成了lapack库,所以可以直接调用,如下所示。添加C:\Program Files (x86)\Intel\oneAPI\mkl\latest\include\intel64\ilp64。添加C:\Program Files (x86)\Intel\oneAPI\mkl\2023.0.0\lib\intel64。5. 在电脑属性-高级-环境变量-系统Path中添加。原创 2023-07-09 15:58:52 · 3032 阅读 · 7 评论 -
Fortran 主程序接收子程序返回的动态数组
其实,就是只要在主程序定义好接收的数组是动态数组,然后在子程序同样定义输出数组为动态数组,然后在子程序直接allocate,貌似allocate可以在主程序子程序间传递,所以直接接收就好了。运行后可以发现,result_array可以直接接收到子程序中的array。本文的情况是,在调用子程序的时候,不清楚数组的大小。原创 2023-07-08 00:00:33 · 357 阅读 · 0 评论 -
Fortran77中,DATA赋值的变量有SAVE属性
将上述示例代码运行,可以发现,在子程序中的a有save属性,每次循环调用func的时候,func里的a会随着循环累加1,而主程序的a不会变化,依旧是1。这是要注意的,我也是第一次发现这个问题,是Fortran的机制还是我理解错了?可以一起讨论,共勉。今天看了个代码,发现用data赋值的小问题,单独拎出来尝试一下如代码所示。原创 2023-06-25 22:30:42 · 558 阅读 · 0 评论 -
使用Fortran画图
我把这个Module也贴出来,我稍稍修改了一丢丢,他里面的一些画图格式设置会有警告,不会影响画图结果,放心,请从代码包中下载,免费的。这个方法与Gnuplot不一样,只要调用这个Module就行,但是其实是代码自动调用的Python,所以电脑需要有Python环境。real(wp),dimension(100) :: xx,yy 即wp类型。反正就是用起来很方便,直接调用Module就可以了。如果代码没错误,执行代码后会跳出画图结果。然后对于你要画图的数组,要特别定义为。原创 2023-06-09 13:26:15 · 2548 阅读 · 6 评论 -
Fortran 输出数组为csv(数值之间有逗号)
读取的时候要用*号,否则也读不出来。原创 2023-06-06 10:39:41 · 393 阅读 · 0 评论 -
Fortran获取当前项目的路径
【代码】Fortran获取当前项目的路径。原创 2023-06-03 10:31:34 · 1003 阅读 · 0 评论 -
VS2022 Fortran 配置IMSL库
(3)在环境变量-系统变量-PATH中添加:C:\Program Files (x86)\VNI\imsl\fnl700\winin111e64\lib。Libraries添加:C:\Program Files (x86)\VNI\imsl\fnl700\winin111e64\lib。总之按着你自己的路径,添加dll,static,lib这三个文件夹,其他东西不要改,添加后点OK就可。(1)先新创建一个空项目,然后工具-选项,看我的截图,最终在Compile选项中。我的电脑是64位的,我就以64为例。原创 2023-05-28 16:45:37 · 2908 阅读 · 0 评论 -
Fortran 指针指向结构体中的数组
注意:type(Level),target::a中一定要加target,才可以真正的指向结构体。原创 2023-05-28 15:06:20 · 216 阅读 · 0 评论 -
Fortran 嵌套结构体
上述代码中,可以看到stack结构体中还有一个Level结构体,当Level结构体是结构体组的话,也应该像定义动态数组一样,加上allocatable。分配空间的时候也和动态数组一样分配。原创 2023-05-28 14:49:26 · 211 阅读 · 0 评论 -
灰狼优化算法-Matlab及Fortran代码
优点:较强的收敛性能,结构简单、需要调节的参数少,容易实现,存在能够自适应调整的收敛因子以及信息反馈机制,能够在局部寻优与全局搜索之间实现平衡,因此在对问题的求解精度和收敛速度方面都有良好的性能。灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。灵感来自于灰狼群体捕食行为。缺点:存在着易早熟收敛,面对复杂问题时收敛精度不高,收敛速度不够快。应用:车间调度、参数优化、图像分类、路径规划。原创 2023-03-26 13:03:25 · 185 阅读 · 2 评论 -
关于Windows下Fortran调用UMFPACK包的问题
关于Windows下Fortran调用UMFPACK包的问题原创 2021-12-17 14:54:40 · 484 阅读 · 0 评论