1. 环境准备搭建Ubuntu虚拟机第一次接触WAVEWATCHⅢ简称WW3时我完全是个Linux小白。记得当时为了在Windows电脑上跑这个海浪数值模型折腾了整整三天。现在回想起来其实只要把环境搭建好后面的安装就会顺利很多。这里我会详细分享如何在虚拟机上安装Ubuntu系统帮你避开我踩过的那些坑。1.1 选择虚拟机软件市面上主流的虚拟机软件有VMware和VirtualBox。我两个都用过实测VMware Workstation Player更稳定特别是对新手更友好。最新版本16.0的安装过程非常简单基本就是一路下一步。有个小技巧安装时记得勾选增强型键盘驱动这样在虚拟机里打字会更流畅。下载地址直接在官网找免费版就行安装包大概150MB。装好后界面很简洁就几个按钮完全不用担心操作复杂。1.2 获取Ubuntu镜像推荐用Ubuntu 20.04 LTS版本这是个长期支持版稳定性有保障。镜像文件大概2.6GB建议用迅雷这类工具下载速度会快很多。下载完成后一定要校验SHA256值我遇到过镜像损坏导致安装失败的情况。有个细节要注意选择ubuntu-20.04.4-desktop-amd64.iso这个版本带desktop的才有图形界面对新手特别重要。服务器版虽然更轻量但全是命令行操作刚开始用会很崩溃。1.3 安装Ubuntu系统在VMware里新建虚拟机时建议分配至少4GB内存和50GB硬盘空间。WW3编译时需要较大内存空间太小后期会捉襟见肘。安装类型选简易安装然后设置好用户名和密码就行。第一次启动时可能会提示安装VMware Tools这个一定要装它能实现主机和虚拟机之间的文件拖拽、剪贴板共享等功能后续传文件会方便很多。如果网络连接有问题试试把网络适配器改成NAT模式这是最不容易出错的设置。安装完成后先运行系统更新sudo apt update sudo apt upgrade -y这个步骤可能会花费较长时间但能确保所有系统组件都是最新版避免后续出现依赖问题。2. 安装依赖软件包刚开始我以为装WW3就像Windows软件一样直接运行安装包结果发现需要先装一堆依赖项。好在Ubuntu的apt包管理器很给力大部分依赖都能一键安装。下面这些是我实测可用的安装方法。2.1 基础编译环境WW3是用Fortran写的所以需要先装编译器套装sudo apt install gcc g gfortran build-essential -y装完后记得验证版本gfortran --version应该显示GNU Fortran 9.3.0或更高版本。如果遇到command not found可能是没装成功需要重新执行安装命令。2.2 并行计算支持WW3支持MPI并行计算OpenMPI是必装的sudo apt install openmpi-bin libopenmpi-dev -y验证安装mpirun --version正常应该显示Open MPI 4.0.3版本信息。有个常见问题如果提示找不到命令可能是路径没设置可以尝试先执行source /etc/profile。2.3 数据处理工具NetCDF是处理气象海洋数据的标准格式必须安装这些库sudo apt install libnetcdf-dev libnetcdff-dev netcdf-bin \ libhdf5-dev libudunits2-dev nco ncview -y这里有个坑要注意不同版本的库可能会有兼容性问题。如果后续编译报错说找不到netcdf模块可能是没装libnetcdff-dev这个包。3. 获取并编译WW3源码终于到了安装WW3本体的环节。这里最容易出问题的是源码下载和编译配置我会把每个步骤都拆解清楚。3.1 下载源代码首先安装git工具sudo apt install git -y然后克隆仓库如果网络不稳定可以多试几次git clone -b 6.07.0 https://github.com/NOAA-EMC/WW3.git我实测6.7.1版本有些兼容性问题所以推荐用6.07.0这个稳定版。克隆完成后你会得到一个WW3目录里面包含了所有源代码。3.2 环境变量配置进入WW3目录创建环境配置文件cd WW3 vi env_ww3.sh按i进入编辑模式粘贴以下内容export WWATCH3_NETCDFNC4 export NETCDF_CONFIGwhich nc-config保存退出后按ESC输入:wq执行source env_ww3.sh这个步骤很关键它告诉WW3在哪里找各种依赖库。如果后续编译报错说找不到netcdf很可能是这里没配置好。3.3 下载补充数据WW3有些测试数据是单独存放的需要运行sh model/bin/ww3_from_ftp.sh当提示保存位置时直接回车使用当前目录。然后对所有提示都选n不下载额外数据因为我们只需要基础数据包。4. 编译与测试运行4.1 初始化编译环境执行初始化脚本./model/bin/w3_setup model -c Gnu -s NCEP_st4这里有几个关键选项-c Gnu指定使用GNU编译器-s NCEP_st4选择标准配置初始化过程中会问很多问题全部按回车用默认值就行。最后确认时输入y系统会生成编译所需的Makefile。4.2 开始编译进入bin目录执行自动化编译cd model/bin ./w3_automake编译过程大概需要10-30分钟取决于电脑性能。如果看到*** End of program ***就说明成功了。常见错误是内存不足这时可以尝试关闭其他程序或者给虚拟机分配更多内存。4.3 运行测试案例进入案例目录配置环境cd ../../cases source ../env_ww3.sh export ww3_dir../model编辑案例脚本vi mww3_case_01需要修改几个关键参数第61行改成你的实际路径第72行改为compstrGnu第138行设置线程数一般设为CPU核心数第143行设置模型路径保存后运行./mww3_case_01如果一切正常你会看到时间步进的提示信息。这个测试案例会计算24小时的海浪状态可能需要较长时间。可以用nohup命令放到后台运行nohup ./mww3_case_01 运行完成后检查nohup.out文件末尾应该有END OF WAVEWATCH III的提示这表示案例运行成功。