爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11372|回复: 21

[经验总结] Fortran之神奇的inquire

[复制链接]

新浪微博达人勋

发表于 2013-7-12 22:51:10 | 显示全部楼层 |阅读模式

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

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

x
    最近在做文件和目录识别的时候,发现一个inquire在CVF6.6环境中有个非常神奇的现象,首先源代码如下:(源地址:http://www.newsmth.net/nForum/#!article/NumComp/104788
! 查询文件是否存在
program mainfile
  implicit none
  !call myfile1
  logical alive
  inquire(file='a.txt',exist=alive)
  if(alive) then
  write(*,*) 'exist'
  else
  write(*,*) 'not exist'
  end if

  end program mainfile

  如果如果直接使用CVF6.6编译器的运行,即“!”快捷方式,文件需要放在项目的当前目录下,才会使程序检索到文件的存在,但是如果双击exe文件的话,则无法检索到a.txt文件,需要把a.txt与exe文件放在同一个文件夹下面才可以,即Debug文件夹下面。
  到底什么导致了同一个源文件因为调用方式的不同,出现不同的结果呢?是编译器的调用方式的问题还是什么?这个问题还在思考中.....

ZZ-20130712

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

新浪微博达人勋

 成长值: 19710
发表于 2013-7-12 22:57:40 | 显示全部楼层
都是这样的。。。CVF就是这么设计的。。。

点评

那这样的话,IVF也是这样啦?不光是CVF??  发表于 2013-7-12 23:05
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-12 22:59:27 | 显示全部楼层

CVF貌似就有缺陷了,同样的代码不同的启动方式却会导致不同的结果,这个问题嘛,呵呵,值得关注呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-7-13 00:16:29 | 显示全部楼层
额 这个是很正常的啊  这个就是程序工作目录的问题  比如你exe和txt在同一个目录下,但是你在cmd里面从另一个目录调用这个exe,是找不到这个txt,因为工作目录在你启动程序的这个目录,你把txt放到你启动程序的这个目录就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-13 00:48:33 | 显示全部楼层
真的很正常,在集成开发环境下运行,当前工作目录是什么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-13 07:06:03 | 显示全部楼层
谢谢分享!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-13 10:13:06 | 显示全部楼层
又是那隻貓 发表于 2013-7-13 07:06
谢谢分享!!

这个只是自己的一点经验,高手都是一点一点积累出来的嘛
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-13 10:17:48 | 显示全部楼层
mofangbao 发表于 2013-7-13 00:16
额 这个是很正常的啊  这个就是程序工作目录的问题  比如你exe和txt在同一个目录下,但是你在cmd里面从另一 ...

还是需要看启动的文件所在的目录啊,不是吗?与你的源文件或者exe地址是无关的嘛?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-13 10:19:13 | 显示全部楼层
fatcat916 发表于 2013-7-13 00:48
真的很正常,在集成开发环境下运行,当前工作目录是什么?

比如我新建了一个test的项目, .\ 这就是当前目录的意思;  .\Debug就是当前目录下的Debug文件夹的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-13 13:02:10 | 显示全部楼层
haobang008 发表于 2013-7-13 10:19
比如我新建了一个test的项目, .\ 这就是当前目录的意思;  .\Debug就是当前目录下的Debug文件夹的。

这不是很清楚吗?在IDE下运行,由IDE调用debug下的.exe文件,当前目录是工程文件所在目录,而在资源管理器中运行,当前目录是.exe文件所在目录(即debug目录)。

可以参考下 http://zhidao.baidu.com/question/536891566.html
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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