爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4816|回复: 7

[求助] fortran如何读取命令行中的参数

[复制链接]

新浪微博达人勋

发表于 2015-8-25 17:02:26 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
  1.        
复制代码
  1. program swr parameter(n=24,m=3,nn=1,l1=3,l2=3,ff1=3.0,ff2=3.0) parameter(m1=m+1,n1=n+nn) common /bb/xy(200,50) dimension b(m1),ri(m1),ti(m1),ex(m1),e(n) dimension vx(m1),r(m1,m1),vyx(m1),tl(n1),fff(m1)

参数在代码中写死了,我想把他换成从外界输入参数,该怎么修改这段代码,已经查到了怎么读取参数,就是不知道上边那段代码该怎么修改
  1. CHARACTER(len=128) :: arg    CALL getarg(1, arg)!读取第一个参数


密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-25 17:04:31 | 显示全部楼层
  1. program swr
  2. parameter(n=24,m=3,nn=1,l1=3,l2=3,ff1=3.0,ff2=3.0)

主要就是这个该怎么修改,参数怎么附
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2015-8-25 17:13:30 | 显示全部楼层
xiaoyanwei2000 发表于 2015-8-25 17:04
主要就是这个该怎么修改,参数怎么附

改成传递就行了
m=100,n=200,o=300
call zichengxu(m,n,o)
end

subroutine zichengxu(m,n,o)
print*,m,n,o
end

上面这个为例就可以实现参数mno从主程序到子程序的传递。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-26 09:51:16 | 显示全部楼层
言深深 发表于 2015-8-25 17:13
改成传递就行了
m=100,n=200,o=300
call zichengxu(m,n,o)

不是实现参数从主程序传递到子程序,而是主程序启动时的参数,如何传递,源程序把参数写死了,我要修改参数就要改代码,现在我想在程序启动的时候就附参数,
例如运行中我输入:C:\Users\Administrator.YLMF-20150717ZB\Documents\Visual Studio 2012\Projects\Console3\Console3\Debug\Console3.exe  12 13 abc
参数12,13,abc就传递进去
但是我要怎么修改代码才能实现这个效果呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2015-8-26 12:01:25 | 显示全部楼层
xiaoyanwei2000 发表于 2015-8-26 09:51
不是实现参数从主程序传递到子程序,而是主程序启动时的参数,如何传递,源程序把参数写死了,我要修改参 ...

不懂
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-26 12:06:55 | 显示全部楼层
谢谢,正有用。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-13 10:57:41 | 显示全部楼层
也碰到这个问题,楼主解决了么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-14 19:10:07 | 显示全部楼层

一个折中的办法是把这几个量设置成变量,然后read。如果要从外部读入可能得用sysytemfun等调用shell的一些指令获取了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表