getarg & iargc

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,你可以在外部输入命令时控制程序中的一些东西。

时间: 2024-10-25 18:03:34

getarg & iargc的相关文章

Fortran主程序参数及简单文件操作

1. C语言里,主函数main()是可以带参数的,而且如果带参数,只能是两个参数. main(int argc, char * argv[]) { } 这里,如果在cmd里运行程序,程序文件名本身也算一个参数,因此argc = 输入参数个数+1. 而argv[0]存放的就是程序文件名. 2. 在Fortran中主函数是没有参数的,如果要再命令行中执行Fortran程序,向Fortran中传递参数,需要在程序中调用相应的函数. agrc=iargc() 返回命令行参数的个数 call getarg

参考用bat文件

@echo off rem *************** start of 'main' set DEBUG=0 if "%DEBUG%"=="1" (set TRACE=echo) else (set TRACE=rem) rem Note that right now there is a bug in tracerpt.exe cause of which you might want to use tracefmt.exe instead. rem set

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

WCF 代理 是怎么工作的?用代码说话

1.WCF生成代理的方式 2.WCF代理原理 第一个问题引用 一篇Robin's博文[WCF生成客户端对象方式解析] 讲述了创建客户端服务对象的方法 1.代理构造法 a.开启服务后,添加服务引用 b.知道元数据地址,通过svcutli.exe生成代理类和配置文件 c.从服务契约DLL中导出元数据,然后更具本地的元数据文件生成代理类和配置文件 d.知道元数据地址,自己编写代码生成(使用ServiceContractGenerator类等),生成代理类和配置文件 2.通道工厂(ChannelFact

sbin/dmsquashfs

#!/bin/sh . /lib/dracut-lib.sh [ -f /tmp/root.info ] && . /tmp/root.info PATH=$PATH:/sbin:/usr/sbin if getarg rdlivedebug; then exec > /tmp/liveroot.$$.out exec 2>> /tmp/liveroot.$$.out set -x fi [ -z "$1" ] && exit 1 li

.Net语言中关于AOP 的实现详解

来源: IT人家  发布时间: 2011-03-22 20:28  阅读: 3546 次  推荐: 2   原文链接   [收藏] 摘要:该文章主要和大家讲解开发应用系统时在.Net语言中关于AOP 的实现. 文章主要和大家讲解开发应用系统时在.Net语言中关于AOP 的实现.LogAspect完成的功能主要是将Advice与业务对象的方法建立映射,并将其添加到Advice集合中.由于我们在AOP实现中,利用了xml配置文件来配置PointCut,因此对于所有Aspect而言,这些操作都是相同的

Hadoop中Combiner的使用

文章转载于:http://blog.csdn.net/ipolaris/article/details/8723782 Hadoop中Combiner的使用 在MapReduce中,当map生成的数据过大时,带宽就成了瓶颈,怎样精简压缩传给Reduce的数据,有不影响最终的结果呢.有一种方法就是使用Combiner,Combiner号称本地的Reduce,Reduce最终的输入,是Combiner的输出.下面以<Hadoop in action>中的专利数据为例.我们打算统计每个国家的专利数目

.NET AOP的实现

一.AOP实现初步 AOP将软件系统分为两个部分:核心关注点和横切关注点.核心关注点更多的是Domain Logic,关注的是系统核心的业务:而横切关注点虽与核心的业务实现无关,但它却是一种更Common的业务,各个关注点离散地分布于核心业务的多处.这意味着,如果不应用AOP,那么这些横切关注点所代表的业务代码,就会分散在系统各处,导致系统中的每个模块都与这些业务具有很强的依赖性.在这里,所谓横切关注点所代表的业务,即为“方面(Aspect)”,常见的包括权限控制.日志管理.事务处理等等. 以权

(转)Attribute在.net编程中的应用

Attribute在.net编程中的应用(一)Attribute的基本概念 经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行.实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考. 在具体的演示之前,我想先大致介绍一下Attribute.我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么它们到底是不是同一个东西呢