主题:开个贴回答Fotran 的问题
trimtrim
[专家分:1640] 发布于 2010-03-31 10:15:00
开个贴试着回答Fortran的问题。有问题的请跟贴。
有两种问题不想回答:
1. Fortran文件读取方面的问题。
2. Fortran程序调试或者找程序中的错误。
回复列表 (共83个回复)
11 楼
lvcao20 [专家分:0] 发布于 2010-04-01 18:32:00
我是刚刚接触fortran,什么都不懂
想问问,fortran的这个MSDEV.EXE,和编译器有什么不一样?那个编译器,下载之后有怎么用呢?
现在所有关于fortran的运行,都要在DOC情况下么?
12 楼
lmm_dlut [专家分:0] 发布于 2010-04-01 18:57:00
我想问一下,如何将fortran的程序与java相连接。怎样生成接口。非常感谢!
13 楼
forcal [专家分:80] 发布于 2010-04-01 21:11:00
感谢楼主开帖解答疑难!
我有IMSL的库函数MOLCH(或M2LCH)的用法要请教楼主:
1、第一次调用函数MOLCH时,置IDO=1,以后该函数自动置IDO=2,仅需在最后一次调用时置IDO=3。如果某次调用函数MOLCH时,FCNUT、 FCNBC、NX 或 NPDES等发生了变化,仍然遵循以上规则吗?如果不遵循,应该怎么办?
2、在使用函数M2LCH时,自己提供了工作空间,那么参数IDO起什么作用?是不是可以取任意值?因为IDO是负责申请或消耗空间的参数,若自己提供了工作空间,该参数是不是没有用了?
我的帖子位置:[url=http://bbs.pfan.cn/post-318087.html]http://bbs.pfan.cn/post-318087.html[/url]
您可以在我的帖子上回复,我好给您加分。
14 楼
trimtrim [专家分:1640] 发布于 2010-04-01 21:12:00
回12楼:
我试过Fotran和pascal,Fotran和c的。可以借鉴一下,据说有两种方法,一种是库方法,一种是com方法。
我用的是库方法,把函数打包成库,并且加上函数的库输出接口,具体可以参考帮助中的Programming with Mixed Languages部分。
至于com方法,没有用过。
15 楼
trimtrim [专家分:1640] 发布于 2010-04-01 21:20:00
回11楼:
1.MSDEV.EXE 应该Microsoft (R) Visual Studio, 是一个集成开发环境的IDE, 有些Fortran 把把自己集成到里面去了。如果不用它,也是可以的。可以用任何文字编辑器编辑,然后在用Fortran编译器编译。
2.Fortran 是独立于操作系统的,可以运行于dos, windows 或Linux
16 楼
trimtrim [专家分:1640] 发布于 2010-04-01 21:46:00
回13楼:没用过这个函数,也没有IMSL,只是参照手册猜测一下:
1.我觉得MOLCH也是调用M2LCH分配工作空间,如果NPDES不同可能会产生错误(内存泄露?)
2.这个不好猜,你可以写个程序试验一下。看看设置ID0=3 运行MOLCH 会不会有问题。
17 楼
forcal [专家分:80] 发布于 2010-04-02 10:04:00
感谢trimtrim,还有一个问题要请教。
Fortran中如何直接输出一个库函数到dll?
例如输出IMSL库函数DEI到aa.dll,有如下代码:
real(8) FUNCTION F_DEI(x)
!DEC$ ATTRIBUTES DLLEXPORT::F_DEI
USE Numerical_Libraries
real(8) x
F_DEI=DEI(x)
END FUNCTION
但以上是通过函数F_DEI间接输出了DEI,如何直接输出IMSL库函数DEI呢?
18 楼
sciencegirl [专家分:0] 发布于 2010-04-02 10:32:00
多谢楼主,我的意思是循环中的语句标号,比如:
do 10,i=1,5,1
write(*,*)i
10 continue
我试验过了,同一个源文件中不同的程序单元可以出现相同的语句标号,不会出错,至少在gfortran编译器下。
多谢楼主了。
19 楼
msh1206 [专家分:100] 发布于 2010-04-02 10:55:00
楼主您好,请教一下,一组数据从小到大排序后,怎么输出其原始位置啊,能否实现像MATLAB中的sort(A,I)命令
20 楼
trimtrim [专家分:1640] 发布于 2010-04-02 11:02:00
回18楼:应该是可以的,大概这种标号的作用域只在函数体内吧。
我来回复