Fortran Coder

查看: 24356|回复: 9
打印 上一主题 下一主题

[求助] 关于fortran的GETARG使用

[复制链接]

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
跳转到指定楼层
楼主
发表于 2018-4-17 17:01:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10F 币
之前电脑用的是win7,VS2008+IVF2011
目前用的是win10,依旧是VS2008+IVF2011,昨天软件还是VS2013+IVF2013本以为是版本问题,现在看来不是,说问题吧,下面是程序:
[Fortran] 纯文本查看 复制代码
      Program Coef_differ


        implicit none
      integer*4 nargs,iargc,i,dg,od,dgmx,odmx,l,m,ln
        integer*4 l1,m1,l2,m2,dotp
        integer*4 stat1,stat2
      character*160 cha,g1file,g2file,g3file,df_file
        character*70 header
        character(len=1):: dot='.'
        logical back
        real*8 dt1,dt2,C1,S1,C2,S2,dC,dS,GM,Rd
        nargs=iargc()

      call get_command_argument (1,cha)
          g1file=cha
        call get_command_argument (2,cha)
          g2file=cha
      write(*,*) g1file
        write(*,*) g2file
          dotp=scan(g1file,dot,back) !求出"."的位置
          g3file=g1file(1:dotp-1)
          df_file=g3file(1:len_trim(g3file))//'_df.coe'


      open(10,file=g1file,status='old')
        open(11,file=g2file,status='unknown')
      open(12,file=df_file,status='unknown')

      do 
           read(10,"(2I12,2D24.15)",iostat=stat1) l1,m1,C1,S1
               if(stat1/=0) exit
           read(11,"(2I12,2D24.15)",iostat=stat2) l2,m2,C2,S2
               if(stat2/=0) exit 

          if (l1 .eq. l2) then
             if (m1. eq. m2) then
                dC=C1-C2
                dS=S1-S2
                write(12,'(2I12,2D24.15)') l1,m1,dC,dS 
                 else
                write(*,*) 'file format not match in order'
                   endif 
          else
             write(*,*) 'file format not match in degree'
          endif      
      enddo
        End Program Coef_differ

coefdiff.f (1.65 KB, 下载次数: 2)


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2018-4-17 22:12:30 | 只看该作者
你并没有说问题。
回复

使用道具 举报

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
板凳
 楼主| 发表于 2018-4-18 17:04:38 | 只看该作者
fcode 发表于 2018-4-17 22:12
你并没有说问题。

好像中途出了问题,我又编辑了一下,问题被吃了,我再 陈述一下。

问题是:调试没法通过,总是说找不到“10”这个文件,我只是希望能够顺利编译,得到exe文件即可,但是总是报错,达不到目的,不知道什么原因?记得之前直接调试一下是可以正常通过的,然后我通过bat 命令,传递参数来实现,不知道是不是与系统有关,劳烦老大了。
回复

使用道具 举报

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
地板
 楼主| 发表于 2018-4-18 17:26:51 | 只看该作者
fcode 发表于 2018-4-17 22:12
你并没有说问题。

记得应该有个编译的功能,或者是选项,就是只是让编译通过即可。

因为最近两三年没怎么接触了,有些忘记了,不好意思,老大提醒一下即可。
回复

使用道具 举报

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2018-4-18 19:17:20 | 只看该作者
代码有问题的话,不可能编译通过。

找不到文件,你需要先判断文件名是否符合你的预期?根据参数给定的文件名,那么参数是否进来了。
如果符合你的预期,那么文件路径是否正确?扩展名是否正确?
回复

使用道具 举报

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
6#
 楼主| 发表于 2018-4-18 20:09:05 | 只看该作者
fcode 发表于 2018-4-18 19:17
代码有问题的话,不可能编译通过。

找不到文件,你需要先判断文件名是否符合你的预期?根据参数给定的文件 ...

你看一下下面这两个图,第一个图我选择 生成----重新生成。

第二个图,我选择调试:

我这里只是调试,不让运行的,也就是我希望他们只是编译一下即可,生成一个exe文件。


回复

使用道具 举报

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

7#
发表于 2018-4-18 22:31:38 | 只看该作者
调试就是(特殊状态)的运行。
只要你能运行(或调试)了,不管运行(或调试)是否出错,那么exe就是生成了。(换句话说,没有exe生成,你压根就运行不起来)

文件没有找到,是因为你没有传递进去参数。你把参数传递进去了,就能找到输入文件了。
回复

使用道具 举报

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
8#
 楼主| 发表于 2018-4-19 09:17:07 | 只看该作者
fcode 发表于 2018-4-18 22:31
调试就是(特殊状态)的运行。
只要你能运行(或调试)了,不管运行(或调试)是否出错,那么exe就是生成了 ...

确实的Debug下生成有一个exe文件,可是这个文件才二十多k,不是最终想要的结果。

话说回来,我这个时候还没有让传递参数呢,通过get_command_argument 这个函数来实现,在dos输入或者bat来传递,因为数据比较大,希望编译通过之后,用一个bat文件传递进去。

目前只是希望通过编译通过,就是就是我这个程序语法各方面没太大问题,并且这个程序之前一直存在(在别的电脑别的系统),程序应该是没太大问题。
回复

使用道具 举报

17

帖子

2

主题

0

精华

入门

F 币
84 元
贡献
56 点
9#
 楼主| 发表于 2018-4-19 09:18:32 | 只看该作者
fcode 发表于 2018-4-17 22:12
你并没有说问题。

你可以先大概看一下这个程序呀

目的就是通过读入两个文件,然后让两个文件里对应项做差。

因为文件太多,不方便一下子打开太多个,就这种参数传递,只需要两个文件号就行了。
回复

使用道具 举报

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

10#
发表于 2018-4-19 12:00:56 | 只看该作者
我的每一个回答,都认真看过提问者的问题和代码。
Debug 下的 exe 就是你要的结果。如果还有其他问题,请描述后继续提问。
你的代码里,如果不传递参数,必然是 file not found。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 11:08

Powered by Tencent X3.4

© 2013-2024 Tencent

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