zoukankan      html  css  js  c++  java
  • FORTRAN_getarg

    我们运行程序时,一般都要求可执行文件rtm_i.e和参数文件parameter.par在同一个目录下,

    程序中是这样的:

    SUBROUTINE READPAR(.....................................)

    OPEN(33,FILE='parameter.par')

    ........

    这样就定死要求,'parameter.par'文件必须在可执行程序运行的目录下。

    发作业命令:

    #!/bin/sh

     MPI_BIN=/software/gpu_dev_tools/mpich2-1.4.1p1/bin
    time $MPI_BIN/mpirun -np 103 -machinefile hostlist ./rtm_i_v4.e >log_rtm&

    但,若移植到软件界面中,要求可执行程序与参数文件可以在不同的路径下,那么,在Fortran中,就用到getarg函数了。

    思路是:将参数文件包含至发作业的命令行中,然后,执行时,程序中读入参数文件,并去找。用getarg函数。

    【from:http://blog.sina.com.cn/s/blog_67f37e760101k2r7.html

    getarg是用来返回你输入的命令行参数的。
    call getarg(n,buffer)
    其中n是命令序号, buffer是相应的命令行参数。运行程序本身的命令是0号,跟在它后面的参数是1,2。。。号。

    例如:“发作业的命令time $MPI_BIN/mpirun -np 103 -machinefile hostlist ./rtm_i_v4.e  parameter.par >log_rtm&” ,其中,./rtm_i_v4.e对应0号命令,parameter.par 对应1号命令

    比如,你写这样一个小程序:
    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,你可以在外部输入命令时控制程序中的一些东西。

    现在程序变成这样:

          CHARACTER*256 fn_par

    *===================================================================
          call getarg(1, fn_par)
          write(*,*) fn_par

    *===== INPUTING THE PARAMETERS FOR RUNNING THE CODE

    CALL READPAR(........................,fn_par,

    ........

    SUBROUTINE READPAR(.....................................,fn_par)

     CHARACTER*256 fn_par

     OPEN(33, FILE=fn_par)

      ........

    发作业命令变成这样:

    #!/bin/sh

    MPI_BIN=/software/gpu_dev_tools/mpich2-1.4.1p1/bin
    time $MPI_BIN/mpirun -np 103 -machinefile hostlist ./rtm_i_v4.e /autofs/is0002/chengxiang/guosj_v2/4liuxy_GPURTM/parameter_rtm_image.par >log_rtm&

  • 相关阅读:
    实现用户密码登录
    面对不同类型老板,你该怎么办?
    11 款最好 CSS 框架 让你的网站独领风骚
    C#程序开发中经常遇到的10条实用的代码
    linux之Unable to find the ncurses libraries or the required header files.错误解决办法
    55+手绘网站设计 – 构建极具创新效果的网站
    超棒的JS移动设备滑动内容幻灯实现
    15个非常棒的jQuery无限滚动插件【瀑布流效果】
    前端性能优化:DocumentFragments或innerHTML取代复杂的元素注入
    TopFreeTheme精选免费模板【20130619】
  • 原文地址:https://www.cnblogs.com/guosj/p/4867403.html
Copyright © 2011-2022 走看看