getarg & iargc 大多应用在Linux系统下的两个命令。如果在Window系统下运行,必须以读入的方式输入相关参量,例如
call GETARG(1,jobname) read(*,*) jobname
或者直接在输入程序里用 FileInp=‘MDcu.mpm‘ 把数据文件注明,否则,程序会自动执行以下程序:
inquire(file=FileInp, exist=ext) if (.not. ext) then write(msg, ‘("Input file ", A10, " does not exist .")‘) & FileInp write(*,*) msg stop 1000 end if
这就是在Linux系统下能够运行的程序,在Windows下不能运行的根源。
如果在Windows下已经生成了可执行程序exe。则可以在cmd直接运行,效果和Linux基本一致。
新浪博客对这两个参数作了详解:http://blog.sina.com.cn/s/blog_67f37e760101k2r7.html
转载之前对博主ousman表示谢意!
-----------------------------------------------------------------------------------------------
getarg用法:call getarg(NUMBER,VALUE)其中NUMBER是获取第几个参数,VALUE是相应的值。
iargc用法:n=iargc(),返回命令行中参数的数量。
nargs:参数个数,包括命令
iargc:参数个数,比nargs得到的个数少一个
iargc() iargc: INTEGER(KIND=1) function. Intrinsic groups: unix. Description: Returns the number of command-line arguments. This count does not include the specification of the program name itself.
getarg是用来返回你输入的命令行参数的:call getarg(n,buffer)
其中n是命令序号, buffer是相应的命令行参数。运行程序本身的命令是0号,跟在它后面的参数是1,2,...号。
比如,你写这样一个小程序:
character*80 buff call getarg(0,buff) write(*,*) buff call getarg(1, buff) write(*,*) buff call getarg(2, buff ) write (*,*) buff end
然后编译它,比如把这个可执行程序命名为mypro,然后在Linux系统下键入命令:./mypro ar1 ar2
可以看到结果是
./mypro ar1 ar2
Windows下(注意:此时必须是可执行程序),则键入:mypro ar1 ar2
可看到结果是
mypro ar1 ar2
可见,用命令行方式,程序执行命令本身是第0个参数,后面跟的第1,2,...,个参量则可以用相应的getarg来获得。
利用这个getarg,你可以在外部输入命令时控制程序中的一些东西。