主题:怎么使用getarg给一个可执行的fortran程序传递参数?
眼泪知道hh
[专家分:0] 发布于 2010-08-03 20:51:00
请教各位大侠怎样调用getarg语句?是不是需要安装什么子程序集之类的东西或者说是用use语句啊?初次接触fortran,不是特别清楚,在网上搜索了一些帖子,还是没有搞清楚,希望各位大侠能够详细说明,感激不尽!!如果需要,可否给小妹提供一份程序集,谢谢!邮箱地址:zhangheng522@21cn.com
回复列表 (共12个回复)
沙发
adda [专家分:1520] 发布于 2010-08-03 22:03:00
用GET_COMMAND_ARGUMENT, 这个是fortran2003标准
板凳
眼泪知道hh [专家分:0] 发布于 2010-08-11 23:27:00
我用的是f90啊??怎么办
3 楼
cgl_lgs [专家分:21040] 发布于 2010-08-12 07:18:00
用IARGC取参数个数,用GETARG取参数字符串
Use DFLIB
Integer N
Character BUFF(2048)
Do N=1,IARGC()
GETARG(N,BUFF) ! 就这样取参数便OK啦:)
Select Case BUFF
Case '-h','-help'
! 输出命令行帮助
Call OutputHelp()
! 其他代码省略之:)
Case Default
! 输出命令行帮助
Call OutputHelp()
End Select
End Do
4 楼
眼泪知道hh [专家分:0] 发布于 2010-08-16 09:16:00
为什么我的getarg语句不能变成蓝色呢?然后buff语句是要在哪输入呢??
5 楼
cgl_lgs [专家分:21040] 发布于 2010-08-16 14:44:00
[quote]
为什么我的getarg语句不能变成蓝色呢?然后buff语句是要在哪输入呢??[/quote]
GETARG不是内置函数。
BUFF是个变量,用下面语句定义就行了:)
CHARACTER*512 BUFF
6 楼
眼泪知道hh [专家分:0] 发布于 2010-08-19 09:23:00
不好意思,我想再请问一下,如果说我用这个语句
call getarg(1,cbuff)
read(cbuff,'(i)')bgt
cbuff也就是那个变量,如果是变量,又怎么将它的第一个值赋给bgt呢?变量不就是没有确定的值吗?
7 楼
cgl_lgs [专家分:21040] 发布于 2010-08-19 09:52:00
call getarg... 会将第一个参数以字符串的方式给cbuff。
read(cbuff...会按格式串“'(i)'”规定的格式将cbuff中的内容给变量列表——在这里就是bgt
8 楼
眼泪知道hh [专家分:0] 发布于 2010-08-19 15:47:00
你好,恕我愚笨,我还是没搞懂cbuff是在哪里被赋值的?比如说这样一个程序
program mypro
character*80 buff
call getarg(0,buff)
write(*,*) buff
call getarg(1, buff)
write(*,*) buff
call getarg(2, buff )
write (*,*) buff
end
我对程序命名为mypro 第一个读取输出的是文件名g:\debug\mypro.exe
那第二个,第三个呢,在哪赋值,我看有帖子说是键入,但是怎么键入呢,这样运行出来,输入任何东西都continue了啊???
9 楼
cgl_lgs [专家分:21040] 发布于 2010-08-20 00:07:00
在:
PROJECT Options-》DEBUG-》PARAMETER
下输入参数:)
或是在命令行执行您的程序:
g:\debug\mypro.exe 123 456 789
10 楼
眼泪知道hh [专家分:0] 发布于 2010-08-20 19:27:00
不好意思。还要再麻烦您一下,我在project下面没有找到options项啊??我只找到了settings项
我来回复