爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15708|回复: 6

WRF,更改源代码后如何快速重编译

[复制链接]

新浪微博达人勋

发表于 2021-4-10 23:51:03 | 显示全部楼层 |阅读模式

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

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

x
大概问题:更改了WRF下面的某一个源代码之后,如何快速编译?

具体情况:我想对phy/下面的某个参数化方案进行调试测试,但是我更改了一个代码之后,除了重新configure和compile em_real之外,怎么能够快速编译完成呢?因为其他的代码都没有改动,我想是不是可以跳过其他源代码的编译环节,更快的得到exe的编译结果。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-4-11 16:01:04 | 显示全部楼层
本帖最后由 wangxs 于 2021-4-11 16:02 编辑

在一些情况下,中间加一行错误代码,让它在这停住,可以先compile到这个fortran程序,等你改完以后,不要clean,直接继续./compile,但是这种条件下你改的这个参数化方案不能影响到前面的编译;还有一种就是你编译完了之后找到编译文件,搜索所有与你要更改的这个fortran 文件有关联的编译,然后复制他们的编译命令,命令行模式下编译,但是这个要求更高了,你可以试验一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-4-13 09:58:28 | 显示全部楼层
感谢你提供的思路。第一种方式看起来仍然是在进行完整的编译。第二种方式感觉难度很大,因为除了编译相关的参数化方案代码,其他的环节(比如生成exe这一步)应该总是和前面的编译相关的,因此也要编译,但是通过编译输出的log不容易确定哪些是相关的。
最终稍微了解了一下linux的makefile的使用方法,实际上如果只对源码进行修改,直接再次执行compile就可以了。在我只修改了一个源码之后,重编译用 -j 8 花了15分钟,省了不少时间。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-4-13 10:00:32 | 显示全部楼层
wangxs 发表于 2021-4-11 16:01
在一些情况下,中间加一行错误代码,让它在这停住,可以先compile到这个fortran程序,等你改完以后,不要cl ...

感谢。目前最容易的办法好像是直接compile。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-15 20:01:49 | 显示全部楼层
能想出这种办法 真是人才啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-16 14:28:02 | 显示全部楼层
直接compile就行。makefile会把依赖于你修改过的F的部分全部重新编译一遍,没有依赖的则不会发生任何更改。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-8-18 16:42:19 | 显示全部楼层
大佬们,如果我我修改了F文件,增加了一行print,这个输出会在哪里呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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