网络书屋(Web Reading Room)

A blogging framework for hackers.

FAST调试

NREL FAST的调试一直存在问题,关键是不知道怎么设置选项,查阅了Visual Studio和一些基本知识整理了 NREL项目的调试方法。

fortran工作路径问题

工作路径对于任何的可执行文件都很重要。

当然事先可能得了解一下软件编译链接的过程(即编写源代码--调用编译器编译源代码--
>调用链接器连接相关代码块生成可执行文件-->运行可执行文件)(IDE隐藏了上述过程)
  • 如果不带任何路径,则被认为是当前路径(working directory)。
  • 如果带相对路径,则以当前路径为基准。
  • 通过命令行执行,当前路径一般在提示符上(或pwd命令查看)
  • 直接双击,当前路径在exe所在的文件夹。
  • 通过IDE方式运行,当前路径一般在工程所在文件夹
  • 一些IDE还允许设置当前路径(只对IDE方式运行有效)。
  • 右键exe名字也是可以指定运行路径的(这样就可以加载对应的配置文件)

比如:

IDE working directory

代码层级改变文件路径

在程序中可以通过一些手段,动态的更改当前路径。

  • IVF: changeDirQQ
  • gfortran: ChDir

也可以通过一些手段,获得当前路径,

  • IVF/gforran: GetCWD
1
2
3
4
5
6
7
8
program testDir
    Implicit none
    CHARACTER(len=512) ::  working_path
    call GET_COMMAND_ARGUMENT(0 , working_path);
    write(*,'(a,/,a)') 'exe path: ', trim(working_path);
    call GETCWD(working_path)
    write(*,'(a,/,a)') 'Working Directory: ', trim(working_path);
end program testDir

输出:<br>

1
2
3
4
5
6
exe path:

D:\testCWD\Debug\test_cwd.exe

working directory:
D:\testCWD

调试FAST

fast 最关键的是一个对应两个设置

  • 一个对应指的是第二步的Linker的output File的exe名字和第三步的General底下的TargetName对应上
  • 两个设置是指在Debuging对Command Arguments和Working Directory的设置。Command Argument指定文件名字 Working Directory指定文件路径。

设置完就可以开始调试了。