![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Fortran
zhuiyuan2012
这个作者很懒,什么都没留下…
展开
-
fortran动态库编译命令
fortran动态库编译命令:gfortran -shared -fPIC -o ap8ae8.so ap8ae8.for原创 2020-08-26 13:36:17 · 914 阅读 · 0 评论 -
ap8ae8改成单点计算的windows平台代码和linux平台代码(2)
2、linux平台代码! ap8ae8.f90!! FUNCTIONS/SUBROUTINES exported from ap8ae8.dll:! ap8ae8 - subroutine! subroutine ap8ae8(OutputFileName,lenOfOutputFileName, 1coordType, 1L_FROMFILE_Start,L_FROMFILE_End, L_FROMFILE_Gap, 1BB0_FROMFIL...原创 2020-05-24 23:17:24 · 466 阅读 · 0 评论 -
fortran 使用续行符与读取DATA变量时的注意事项
注意事项:1、fotran的一行必须写满,针对固定格式的fortran需要写满第7-72个字符处如下代码:如果不写满,编译不会报错,但读取MNAME变量时不能获取期望的变量2、FORMAT格式读取 DATA变量时,变量元素如果是字符串,则计算字符个数时不会计算两端的单引号...原创 2019-12-26 15:42:37 · 2703 阅读 · 0 评论 -
关于java调用fortran dll的坑
项目里面需要用java调用fortran 的dll,我负责生成dll,对方工程师负责java调用。以为很简单的分工,很快能完成。没想到遇到很多坑!!!材料:VS2010, Intel(R) VisualFotran Compiler 16.0 编译器 myeclipse version 8.5 , jdk 1.6.0(32位),JNA库ap8ae8.for 源代码 ,...原创 2019-08-16 13:37:27 · 920 阅读 · 0 评论 -
Fortran 接收命令行参数遇到的问题
Fortran 中接收命令行参数时,第0个参数是程序本身,第1个参数才是开始了真正的输入参数。这种对应关系是严格的。所以赋值时必须注意!!!以下代码是ap8ae8参数输入部分:i=0 DO CALL get_command_argument(i,crg) IF(LEN_TRIM(crg)==0)EXIT WRITE(*,*)i,crg ...原创 2019-08-21 14:09:09 · 945 阅读 · 0 评论 -
Fortran 编译出现error #7938: Character length argument mismatch
有时候并不是程序本身错误,而是上一次编译时子程序对变量的修改保存到当前的编译过程中,造成错误。解决办法是将项目“清理”,然后重新编译,还要注意不同子程序文件之间编译的顺序,顺序不同也会错误。原创 2016-06-27 14:21:44 · 3158 阅读 · 0 评论 -
windows 下命令行gcc 执行c++代码并带库路径
以AP8AE8程序为例,运行包含geopack2008.h 和libpe8.a,libgeopack2008.a,libgfortran.a命令:gcc mainwindow.cpp -I C:\Users\user\test\include -L C:\Users\user\test\lib -lpe8 -lgeopack2008 -lgfortran -lstdc++或者g++ mai...原创 2019-07-19 10:14:22 · 1250 阅读 · 0 评论 -
C++调用fortran dll成功方法
此处介绍通过API加载dll 和通过lib链接dllFORTRAN 代码如下:real function apae20151108flux(coordType,L_FROMFILE_Start,L_FROMFI 1LE_End, L_FROMFILE_Gap,BB0_FROMFILE_Start,BB0_FROMF 1ILE_End,BB0_FROM...原创 2019-07-17 22:24:55 · 873 阅读 · 0 评论 -
VS编译fortran dll时报错“ Error: Product support for your (Comp-FW) license has expired.”
配置:VS 使用的fortran编译器是Intel(R) Visual Fortran Compiler 16.0 [Intel(R) 64] (vs的工具—>选项里面可以查看)以ap8ae8.for源代码编译windows 64位dll为例:建工程(Project)的时候,选择动态链接库(Dynamic-Link Library)即可。如果你用的是Compaq Fort...原创 2019-08-14 13:11:52 · 4464 阅读 · 1 评论 -
linux下gfortran 生成so文件
转自:http://blog.sciencenet.cn/blog-725052-1146332.htmlFortran 90增加了Module的功能,可用来替代common data,打包子程序。因此,一个方便使用的Fortran程序包应该尽量采用module的形式。那么如何使用已经写好的module呢,一个比较好的方式是将module编译为动态链接库。本文介绍在Linux环境下如何使用gf...转载 2019-08-14 13:49:30 · 1974 阅读 · 0 评论 -
fortan dll在本地可以运行成功,移植到其他电脑上报错Exception in thread "main" java.lang.UnsatisfiedLinkError: 找不到指定的模块。
坑!!!大大的坑!!!本项目需要实现java调用fortran的dll,我在本地编译好apae.dll,然后java调用dll成功!将apae.dll发送给对方,同样的java代码和fortran的dll,始终各种报错要么是Exception in thread "main" java.lang.UnsatisfiedLinkError: 找不到指定的模块。要么是如下错误:...原创 2019-08-19 15:48:17 · 9284 阅读 · 0 评论 -
fortran的报错解决方法
主程序:PROGRAM ap8ae8 real L_FROMFILE_Start,L_FROMFILE_End, L_FROMFILE_Gap, 1BB0_FROMFILE_Start,BB0_FROMFILE_End,BB0_FROMFILE_Gap, 1xlatStart,xlatEnd,xlatGap,xlongStart,xlongEnd,xlongGa...原创 2019-08-20 11:03:38 · 18289 阅读 · 0 评论 -
Linux下ap8ae8程序获取输入参数中字符串文件名时只获取了首个字符的问题
ap8ae8主程序代码:PROGRAM ap8ae8 real L_FROMFILE_Start,L_FROMFILE_End, L_FROMFILE_Gap, 1BB0_FROMFILE_Start,BB0_FROMFILE_End,BB0_FROMFILE_Gap, 1xlatStart,xlatEnd,xlatGap,xlongStart,xlongEnd...原创 2019-08-20 16:36:25 · 233 阅读 · 0 评论 -
java调用fortran 77的dll Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up fun
注意一点:调用函数java里面的fortran函数名字要全部大写!!!!本文使用的是java 的JNA实现对fortran dll的调用,所以你需要先安装JNA库。第一次java调用fortran的dll时,总是报错Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'a...原创 2019-08-15 20:30:51 · 3554 阅读 · 0 评论 -
C/C++调用FORTRAN编写的DLL
本文大部分内容转自https://blog.csdn.net/fengyhack/article/details/8594727,标红的是我自己实验过后的理解之前都是用C/C++写好一些公用函数并将其包装在DLL中以供某应用模块调用,这方面的教程在网络上一搜一大堆,以后再抽空在这里用实例简单地讲述一下。这次是用FORTRAN写好几个函数然后编译成DLL,然后在C语言程序中使用。1、...转载 2019-08-15 20:54:38 · 3008 阅读 · 1 评论 -
VS2010查看dll是32位还是64位
打开cmd:cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin运行vcvars32.bat再次输入以下命令:dumpbin /headers D:\ap8ae8.dll将会看到以下结果:Microsoft (R) COFF/PE Dumper Version 10.00.40219.01Copyri...原创 2019-08-15 20:59:40 · 1297 阅读 · 0 评论 -
Fortran三种数组传递方式
本文介绍了假定大小,假定形状,自动数组三种数组传递方式,并对比了其中的差别和优劣。适合新手阅读Fortran 中,调用函数或子程序时,默认将实参的地址传递给形参,称为地址传递或引用传递。究其原因,是因为Fortran主要针对数值计算,参数多为大型数组(二维数组称矩阵),如果采用值传递,会复制实参的一个拷贝给形参,占用时间和内存,而地址传递则仅仅将实参数组的首地址传递给形参,没有时间和内存冗转载 2016-06-27 10:55:46 · 14572 阅读 · 1 评论