01-WW3 v6.07.1:下载+./w3_make


WW3 v6.07.1:下载+./w3_make

要求是linux系统哟~~

下载文件夹

https://github.com/Liu-Jincan/WW3/releases/tag/6.07.1

链接:https://pan.baidu.com/s/1gV8PVAP4ocfBbtIR7iIwRw 提取码:1v1u

下载压缩包,解压即可。

解压后的文件夹内容

安装gcc,版本位置信息

# 安装 gcc, gcc+
sudo apt install build-essential

### 注意事项1
# 安装过程,可能需要输入 /media/cfdom? 什么的,它会有提示的;
###
xuniji1@xuniji1-virtual-machine:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 

xuniji1@xuniji1-virtual-machine:~$ which gcc
/usr/bin/gcc

安装gfortran,版本位置信息

# 安装 gfortran
sudo apt install gfortran
xuniji1@xuniji1-virtual-machine:~$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 

xuniji1@xuniji1-virtual-machine:~$ which gfortran
/usr/bin/gfortran

安装netcdf-c,版本位置信息

sudo apt install libnetcdf-dev
xuniji1@xuniji1-virtual-machine:~$ nc-config --all

This netCDF 4.6.0 has been built with the following features: 

  --cc        -> /usr/bin/cc
  --cflags    -> -I/usr/include -I/usr/include/hdf5/serial
  --libs      -> -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lnetcdf -lhdf5_hl -lhdf5 -lpthread -lsz -lz -ldl -lm -lcurl

  --has-c++   -> no
  --cxx       -> 

  --has-c++4  -> no
  --cxx4      -> 

  --has-fortran-> no
  --has-dap   -> yes
  --has-dap2  -> yes
  --has-dap4  -> yes
  --has-nc2   -> yes
  --has-nc4   -> yes
  --has-hdf5  -> yes
  --has-hdf4  -> no
  --has-logging-> no
  --has-pnetcdf-> no
  --has-szlib -> no
  --has-cdf5 -> no
  --has-parallel-> no

  --prefix    -> /usr
  --includedir-> /usr/include
  --libdir    -> /usr/lib/x86_64-linux-gnu
  --version   -> netCDF 4.6.0


xuniji1@xuniji1-virtual-machine:~$ which nc-config
/usr/bin/nc-config

安装netcdf-f,版本位置信息

xuniji1@xuniji1-virtual-machine:~$ nf-config --all

Command 'nf-config' not found, but can be installed with:

sudo apt install libnetcdff-dev

xuniji1@xuniji1-virtual-machine:~$ sudo apt install libnetcdff-dev

## 安装
xuniji1@xuniji1-virtual-machine:~$ nf-config --all

This netCDF-Fortran 4.4.4 has been built with the following features: 

  --cc        -> gcc
  --cflags    ->  -I/usr/include -Wdate-time -D_FORTIFY_SOURCE=2

  --fc        -> gfortran
  --fflags    -> -I/usr/include
  --flibs     -> -L/usr/lib -lnetcdff -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -lnetcdf -lnetcdf 
  --has-f90   -> no
  --has-f03   -> yes

  --has-nc2   -> yes
  --has-nc4   -> yes

  --prefix    -> /usr
  --includedir-> /usr/include
  --version   -> netCDF-Fortran 4.4.4

## 位置
xuniji1@xuniji1-virtual-machine:~$ which nf-config 
/usr/bin/nf-config

在 ~/.bashrc 添加环境变量

export WWATCH3_NETCDF=NC4
export NETCDF_CONFIG=/usr/bin/nc-config

xuniji1@xuniji1-virtual-machine:~$ source ~/.bashrc 
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp comp.Gnu comp.comp.Gnu 
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp link.Gnu link.comp.Gnu 
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp switch_NRL1 switch_switch_NRL1 

xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp comp.Gnu comp
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp link.Gnu link 
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ cp switch_NRL1 switch

这里的 comp.Gnulink.Gnuswitch_NRL1 文件都是在 bin 文件下的,不用额外下载。

环境配置(./w3_setup, wwatch.env)

xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_setup ../ -c comp.Gnu -s switch_NRL1
 
                *****************************
              ***   WAVEWATCH III setup     ***
                *****************************
 
 
[INFO] local env file wwatch3.env found in /home/xuniji1/WW3_607_2/model/bin/wwatch3.env
   Setup file /home/xuniji1/WW3_607_2/model/bin/wwatch3.env found
      Printer (listings)          : printer
      auxiliary FORTRAN compiler  : gfortran
      auxiliary C compiler        : gcc
      Source directory            : /home/xuniji1/WW3_607_2/model
      Scratch directory           : /home/xuniji1/WW3_607_2/model/tmp
      Save source code            : yes
      Save listings               : yes
   Update settings ? [y/n] n
 
   Setup makefile for auxiliary programs
 
 
   Compile auxiliary programs
make: Entering directory '/home/xuniji1/WW3_607_2/model/aux'
make: Nothing to be done for 'all'.
make: Leaving directory '/home/xuniji1/WW3_607_2/model/aux'
 
 
   Setup comp & link files
      copy /home/xuniji1/WW3_607_2/model/bin/comp.comp.Gnu => /home/xuniji1/WW3_607_2/model/bin/comp
      copy /home/xuniji1/WW3_607_2/model/bin/link.comp.Gnu => /home/xuniji1/WW3_607_2/model/bin/link
 
   Setup switch file
      /home/xuniji1/WW3_607_2/model/bin/switch_switch_NRL1 => /home/xuniji1/WW3_607_2/model/bin/switch
 
   Create required model subdirectories
 
Finished setting up WAVEWATCH III

首次 ./w3_make 出错

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_new
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
 
##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_clean 
 
                *****************************
              ***   WAVEWATCH III clean     ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
   Clean up /home/xuniji1/WW3_607_2/model/tmp
   Clean up /home/xuniji1/WW3_607_2/model/bin
   Clean up /home/xuniji1/WW3_607_2/model/ftn
   Clean up /home/xuniji1/WW3_607_2/model/aux
   Remove /home/xuniji1/WW3_607_2/model/mod
   Remove /home/xuniji1/WW3_607_2/model/mod_MPI
   Remove /home/xuniji1/WW3_607_2/model/obj
   Remove /home/xuniji1/WW3_607_2/model/obj_MPI
   Remove /home/xuniji1/WW3_607_2/model/tmp
 

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_make 
 
                *****************************
              ***   WAVEWATCH III make      ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
Main directory    : /home/xuniji1/WW3_607_2/model
Scratch directory : /home/xuniji1/WW3_607_2/model/tmp
Save source codes : yes
Save listings     : yes
 
[INFO] list of the programs selected : ww3_grid ww3_strt ww3_bound ww3_outf ww3_outp ww3_trck ww3_grib ww3_gint gx_outf gx_outp ww3_uprstr ww3_multi ww3_sbs1 libww3 ww3_systrk ww3_gspl ww3_prep ww3_shel ww3_prnc ww3_ounf ww3_ounp ww3_bounc ww3_trnc
WARNING: NC4 is set in WWATCH3_NETCDF but not in the switch file
 
Making makefile ...
 
                *****************************
              ***   WAVEWATCH III makefile  ***
                *****************************
 
switch = /home/xuniji1/WW3_607_2/model/bin/switch
   Checking all subroutines for modules (this may take a while) ...
 
Processing ww3_grid
---------------------
ad3 : processing constants 
mv: cannot stat 'constants.o': No such file or directory
ad3 : processing w3servmd 
mv: cannot stat 'w3servmd.o': No such file or directory
ad3 : processing w3arrymd 
ad3 : processing w3gsrumd 
mv: cannot stat 'w3arrymd.o': No such file or directory
mv: cannot stat 'w3gsrumd.o': No such file or directory
ad3 : processing w3gdatmd 
mv: cannot stat 'w3gdatmd.o': No such file or directory
ad3 : processing w3odatmd 
ad3 : processing w3idatmd 
mv: cannot stat 'w3odatmd.o': No such file or directory
mv: cannot stat 'w3idatmd.o': No such file or directory
ad3 : processing w3timemd 
ad3 : processing w3dispmd 
ad3 : processing wmmdatmd 
ad3 : processing w3nmlgridmd 
mv: cannot stat 'wmmdatmd.o': No such file or directory
mv: cannot stat 'w3timemd.o': No such file or directory
mv: cannot stat 'w3dispmd.o': No such file or directory
mv: cannot stat 'w3nmlgridmd.o': No such file or directory
ad3 : processing w3adatmd 
ad3 : processing w3src4md 
mv: cannot stat 'w3adatmd.o': No such file or directory
ad3 : processing w3snl1md 
ad3 : processing w3parall 
ad3 : processing w3triamd 
mv: cannot stat 'w3src4md.o': No such file or directory
mv: cannot stat 'w3parall.o': No such file or directory
mv: cannot stat 'w3snl1md.o': No such file or directory
mv: cannot stat 'w3triamd.o': No such file or directory
ad3 : processing w3iogrmd 
ad3 : processing w3wdatmd 
mv: cannot stat 'w3iogrmd.o': No such file or directory
mv: cannot stat 'w3wdatmd.o': No such file or directory
ad3 : processing ww3_grid 
mv: cannot stat 'ww3_grid.o': No such file or directory
      Linking ww3_grid
      *** file ww3_grid.o not found ***
      *** file w3wdatmd.o not found ***
      *** file w3gdatmd.o not found ***
      *** file w3adatmd.o not found ***
      *** file w3idatmd.o not found ***
      *** file w3odatmd.o not found ***
      *** file wmmdatmd.o not found ***
      *** file w3parall.o not found ***
      *** file w3triamd.o not found ***
      *** file w3src4md.o not found ***
      *** file w3snl1md.o not found ***
      *** file w3iogrmd.o not found ***
      *** file constants.o not found ***
      *** file w3servmd.o not found ***
      *** file w3arrymd.o not found ***
      *** file w3dispmd.o not found ***
      *** file w3gsrumd.o not found ***
      *** file w3timemd.o not found ***
      *** file w3nmlgridmd.o not found ***
*** Missing object files ***
makefile:25: recipe for target '/home/xuniji1/WW3_607_2/model/exe/ww3_grid' failed
make: *** [/home/xuniji1/WW3_607_2/model/exe/ww3_grid] Error 3

在 tmp 文件夹下查询错误日志 ww3_grid.err

尝试 ./w3_automake 错误

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_new
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_clean 
 
                *****************************
              ***   WAVEWATCH III clean     ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
   Clean up /home/xuniji1/WW3_607_2/model/tmp
   Clean up /home/xuniji1/WW3_607_2/model/bin
   Clean up /home/xuniji1/WW3_607_2/model/ftn
   Clean up /home/xuniji1/WW3_607_2/model/aux
   Remove /home/xuniji1/WW3_607_2/model/mod
   Remove /home/xuniji1/WW3_607_2/model/mod_MPI
   Remove /home/xuniji1/WW3_607_2/model/obj
   Remove /home/xuniji1/WW3_607_2/model/obj_MPI
   Remove /home/xuniji1/WW3_607_2/model/tmp

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_automake 
 
                *****************************
              ***   WAVEWATCH III automake  ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
 
[INFO] list of the programs selected : ww3_grid ww3_strt ww3_bound ww3_outf ww3_outp ww3_trck ww3_grib ww3_gint gx_outf gx_outp ww3_uprstr libww3 ww3_multi ww3_sbs1 ww3_systrk ww3_shel ww3_prep ww3_gspl ww3_prnc ww3_ounf ww3_ounp ww3_bounc ww3_trnc
 
[INFO] SEQ progs :  ww3_grid ww3_strt ww3_bound ww3_outf ww3_outp ww3_trck ww3_grib ww3_gint gx_outf gx_outp ww3_uprstr libww3 ww3_systrk ww3_prep ww3_gspl ww3_prnc ww3_ounf ww3_ounp ww3_bounc ww3_trnc
 
 
                *****************************
              ***   WAVEWATCH III make      ***
                *****************************
 
Main directory    : /home/xuniji1/WW3_607_2/model
Scratch directory : /home/xuniji1/WW3_607_2/model/tmp
Save source codes : yes
Save listings     : yes
 
[INFO] list of the programs selected : ww3_grid ww3_strt ww3_bound ww3_outf ww3_outp ww3_trck ww3_grib ww3_gint gx_outf gx_outp ww3_uprstr libww3 ww3_systrk ww3_prep ww3_gspl ww3_prnc ww3_ounf ww3_ounp ww3_bounc ww3_trnc
WARNING: NC4 is set in WWATCH3_NETCDF but not in the switch file
 
Making makefile ...
 
                *****************************
              ***   WAVEWATCH III makefile  ***
                *****************************
 
switch = /home/xuniji1/WW3_607_2/model/work_SEQ/switch.SEQ
   Checking all subroutines for modules (this may take a while) ...
 
Processing ww3_grid
---------------------
ad3 : processing constants 
ad3 : processing w3servmd 
ad3 : processing w3gsrumd 
ad3 : processing w3arrymd 
ad3 : processing w3gdatmd 
ad3 : processing w3idatmd 
ad3 : processing w3odatmd 
ad3 : processing w3timemd 
ad3 : processing w3dispmd 
ad3 : processing w3nmlgridmd 
ad3 : processing w3adatmd 
ad3 : processing wmmdatmd 
ad3 : processing w3src4md 
ad3 : processing w3triamd 
ad3 : processing w3snl1md 
ad3 : processing w3parall 
ad3 : processing w3iogrmd 
ad3 : processing w3wdatmd 
ad3 : processing ww3_grid 
      Linking ww3_grid
 
Processing ww3_strt
---------------------
ad3 : processing w3sdb1md 
ad3 : processing w3iorsmd 
ad3 : processing w3sbt1md 
ad3 : processing ww3_strt 
      Linking ww3_strt
 
Processing ww3_bound
---------------------
ad3 : processing w3cspcmd 
ad3 : processing w3iobcmd 
ad3 : processing ww3_bound 
      Linking ww3_bound
 
Processing ww3_outf
---------------------
ad3 : processing w3iogomd 
ad3 : processing ww3_outf 
      Linking ww3_outf
 
Processing ww3_outp
---------------------
ad3 : processing w3flx1md 
ad3 : processing w3partmd 
ad3 : processing w3iopomd 
ad3 : processing w3bullmd 
ad3 : processing ww3_outp 
      Linking ww3_outp
 
Processing ww3_trck
---------------------
ad3 : processing ww3_trck 
      Linking ww3_trck
 
Processing ww3_grib
---------------------
ad3 : processing ww3_grib 
      Linking ww3_grib
 
Processing ww3_gint
---------------------
ad3 : processing ww3_gint 
      Linking ww3_gint
 
Processing gx_outf
---------------------
ad3 : processing gx_outf 
      Linking gx_outf
 
Processing gx_outp
---------------------
ad3 : processing gx_outp 
      Linking gx_outp
 
Processing ww3_uprstr
---------------------
ad3 : processing ww3_uprstr 
      Linking ww3_uprstr
 
Processing libww3
---------------------
ad3 : processing w3initmd 
ad3 : processing w3iotrmd 
ad3 : processing w3iosfmd 
ad3 : processing w3fldsmd 
ad3 : processing w3uqckmd 
ad3 : processing w3profsmd 
ad3 : processing w3srcemd 
ad3 : processing w3updtmd 
ad3 : processing w3wdasmd 
ad3 : processing w3pro3md 
ad3 : processing w3wavemd 
ar: creating libww3.a
a - wmmdatmd.o
a - w3gdatmd.o
a - w3wdatmd.o
a - w3adatmd.o
a - w3idatmd.o
a - w3odatmd.o
a - w3fldsmd.o
a - w3initmd.o
a - w3wavemd.o
a - w3wdasmd.o
a - w3updtmd.o
a - w3profsmd.o
a - w3pro3md.o
a - w3uqckmd.o
a - w3triamd.o
a - w3srcemd.o
a - w3flx1md.o
a - w3src4md.o
a - w3snl1md.o
a - w3sbt1md.o
a - w3sdb1md.o
a - w3iogrmd.o
a - w3iogomd.o
a - w3iopomd.o
a - w3iotrmd.o
a - w3iorsmd.o
a - w3iobcmd.o
a - w3iosfmd.o
a - w3partmd.o
a - constants.o
a - w3servmd.o
a - w3timemd.o
a - w3arrymd.o
a - w3dispmd.o
a - w3cspcmd.o
a - w3gsrumd.o
 
Processing ww3_systrk
---------------------
ad3 : processing w3strkmd 
ad3 : processing ww3_systrk 
      Linking ww3_systrk
 
Processing ww3_prep
---------------------
ad3 : processing ww3_prep 
      Linking ww3_prep
 
Processing ww3_gspl
---------------------
ad3 : processing ww3_gspl 
      Linking ww3_gspl
 
Processing ww3_prnc
---------------------
ad3 : processing w3nmlprncmd 
ad3 : processing ww3_prnc 
      Linking ww3_prnc
 
Processing ww3_ounf
---------------------
ad3 : processing w3nmlounfmd 
ad3 : processing ww3_ounf 
      Linking ww3_ounf
 
Processing ww3_ounp
---------------------
ad3 : processing w3nmlounpmd 
ad3 : processing ww3_ounp 
      Linking ww3_ounp
 
Processing ww3_bounc
---------------------
ad3 : processing w3nmlbouncmd 
ad3 : processing ww3_bounc 
      Linking ww3_bounc
 
Processing ww3_trnc
---------------------
ad3 : processing w3nmltrncmd 
ad3 : processing ww3_trnc 
      Linking ww3_trnc
 
 
                       **********************
                     *** end of compilation ***
                       **********************
 
 
[INFO] MPI progs :  ww3_multi ww3_sbs1 ww3_shel
 
 
                *****************************
              ***   WAVEWATCH III make      ***
                *****************************
 
Main directory    : /home/xuniji1/WW3_607_2/model
Scratch directory : /home/xuniji1/WW3_607_2/model/tmp
Save source codes : yes
Save listings     : yes
 
[INFO] list of the programs selected : ww3_multi ww3_sbs1 ww3_shel
 
Processing ww3_multi
---------------------
ad3 : processing w3uqckmd 
ad3 : processing constants 
mv: cannot stat 'w3uqckmd.o': No such file or directory
mv: cannot stat 'constants.o': No such file or directory
ad3 : processing w3servmd 
mv: cannot stat 'w3servmd.o': No such file or directory
ad3 : processing w3arrymd 
ad3 : processing wmunitmd 
ad3 : processing w3cspcmd 
ad3 : processing w3gsrumd 
mv: cannot stat 'wmunitmd.o': No such file or directory
mv: cannot stat 'w3arrymd.o': No such file or directory
mv: cannot stat 'w3cspcmd.o': No such file or directory
mv: cannot stat 'w3gsrumd.o': No such file or directory
ad3 : processing w3gdatmd 
mv: cannot stat 'w3gdatmd.o': No such file or directory
ad3 : processing w3odatmd 
ad3 : processing w3idatmd 
ad3 : processing w3sbt1md 
mv: cannot stat 'w3odatmd.o': No such file or directory
mv: cannot stat 'w3idatmd.o': No such file or directory
mv: cannot stat 'w3sbt1md.o': No such file or directory
ad3 : processing w3timemd 
ad3 : processing w3dispmd 
ad3 : processing wmmdatmd 
ad3 : processing w3sdb1md 
mv: cannot stat 'w3timemd.o': No such file or directory
mv: cannot stat 'wmmdatmd.o': No such file or directory
mv: cannot stat 'w3dispmd.o': No such file or directory
mv: cannot stat 'w3sdb1md.o': No such file or directory
ad3 : processing wmfinlmd 
ad3 : processing w3adatmd 
ad3 : processing w3flx1md 
ad3 : processing w3fldsmd 
mv: cannot stat 'w3flx1md.o': No such file or directory
mv: cannot stat 'wmfinlmd.o': No such file or directory
mv: cannot stat 'w3adatmd.o': No such file or directory
mv: cannot stat 'w3fldsmd.o': No such file or directory
ad3 : processing w3src4md 
ad3 : processing w3partmd 
ad3 : processing w3nmlmultimd 
ad3 : processing w3parall 
mv: cannot stat 'w3src4md.o': No such file or directory
mv: cannot stat 'w3partmd.o': No such file or directory
mv: cannot stat 'w3nmlmultimd.o': No such file or directory
mv: cannot stat 'w3parall.o': No such file or directory
ad3 : processing w3triamd 
ad3 : processing w3snl1md 
ad3 : processing w3wdatmd 
mv: cannot stat 'w3triamd.o': No such file or directory
mv: cannot stat 'w3wdatmd.o': No such file or directory
mv: cannot stat 'w3snl1md.o': No such file or directory
ad3 : processing wmgridmd 
ad3 : processing w3iogomd 
ad3 : processing w3iopomd 
ad3 : processing w3iorsmd 
mv: mv: cannot stat 'w3iopomd.o': No such file or directory
cannot stat 'wmgridmd.o': No such file or directory
mv: cannot stat 'w3iorsmd.o': No such file or directory
mv: cannot stat 'w3iogomd.o': No such file or directory
ad3 : processing w3iobcmd 
ad3 : processing w3updtmd 
ad3 : processing w3iosfmd 
ad3 : processing w3iotrmd 
mv: cannot stat 'w3iobcmd.o': No such file or directory
mv: cannot stat 'w3updtmd.o': No such file or directory
mv: cannot stat 'w3iosfmd.o': No such file or directory
ad3 : processing w3pro3md 
mv: cannot stat 'w3iotrmd.o': No such file or directory
ad3 : processing w3profsmd 
ad3 : processing w3srcemd 
mv: cannot stat 'w3pro3md.o': No such file or directory
ad3 : processing wmupdtmd 
mv: cannot stat 'w3profsmd.o': No such file or directory
mv: cannot stat 'w3srcemd.o': No such file or directory
ad3 : processing w3wdasmd 
mv: cannot stat 'wmupdtmd.o': No such file or directory
ad3 : processing w3iogrmd 
ad3 : processing wminiomd 
mv: cannot stat 'w3wdasmd.o': No such file or directory
mv: cannot stat 'w3iogrmd.o': No such file or directory
mv: cannot stat 'wminiomd.o': No such file or directory
ad3 : processing w3wavemd 
ad3 : processing w3initmd 
mv: cannot stat 'w3wavemd.o': No such file or directory
mv: cannot stat 'w3initmd.o': No such file or directory
ad3 : processing wmiopomd 
mv: cannot stat 'wmiopomd.o': No such file or directory
ad3 : processing wmwavemd 
ad3 : processing wminitmd 
mv: cannot stat 'wminitmd.o': No such file or directory
mv: cannot stat 'wmwavemd.o': No such file or directory
ad3 : processing ww3_multi 
mv: cannot stat 'ww3_multi.o': No such file or directory
      Linking ww3_multi
      *** file ww3_multi.o not found ***
      *** file wmmdatmd.o not found ***
      *** file w3gdatmd.o not found ***
      *** file w3wdatmd.o not found ***
      *** file w3adatmd.o not found ***
      *** file w3idatmd.o not found ***
      *** file w3odatmd.o not found ***
      *** file wminitmd.o not found ***
      *** file wmwavemd.o not found ***
      *** file wmfinlmd.o not found ***
      *** file wmgridmd.o not found ***
      *** file wmupdtmd.o not found ***
      *** file wminiomd.o not found ***
      *** file w3fldsmd.o not found ***
      *** file w3initmd.o not found ***
      *** file w3wavemd.o not found ***
      *** file w3wdasmd.o not found ***
      *** file w3updtmd.o not found ***
      *** file w3profsmd.o not found ***
      *** file w3pro3md.o not found ***
      *** file w3uqckmd.o not found ***
      *** file w3parall.o not found ***
      *** file w3triamd.o not found ***
      *** file w3srcemd.o not found ***
      *** file w3flx1md.o not found ***
      *** file w3src4md.o not found ***
      *** file w3snl1md.o not found ***
      *** file w3sbt1md.o not found ***
      *** file w3sdb1md.o not found ***
      *** file w3iogrmd.o not found ***
      *** file w3iogomd.o not found ***
      *** file w3iopomd.o not found ***
      *** file wmiopomd.o not found ***
      *** file w3iotrmd.o not found ***
      *** file w3iorsmd.o not found ***
      *** file w3iobcmd.o not found ***
      *** file w3iosfmd.o not found ***
      *** file w3partmd.o not found ***
      *** file constants.o not found ***
      *** file w3servmd.o not found ***
      *** file w3timemd.o not found ***
      *** file w3arrymd.o not found ***
      *** file w3dispmd.o not found ***
      *** file w3cspcmd.o not found ***
      *** file w3gsrumd.o not found ***
      *** file wmunitmd.o not found ***
      *** file w3nmlmultimd.o not found ***
*** Missing object files ***
makefile:195: recipe for target '/home/xuniji1/WW3_607_2/model/exe/ww3_multi' failed
make: *** [/home/xuniji1/WW3_607_2/model/exe/ww3_multi] Error 3

在 tmp 文件夹下查询错误日志 ww3_multi.err

根据 err 安装 mpif90

##
xuniji1@xuniji1-virtual-machine:~$ mpif90 

Command 'mpif90' not found, but can be installed with:

sudo apt install libmpich-dev  
sudo apt install libopenmpi-dev

##
xuniji1@xuniji1-virtual-machine:~$ sudo apt install libmpich-dev
[sudo] password for xuniji1: 
Reading package lists... Done
Building dependency tree   
Reading state information... Done
The following package was automatically installed and is no longer required:
  linux-hwe-5.4-headers-5.4.0-84
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  hwloc-nox libcr-dev libcr0 libhwloc-plugins libhwloc5 libmpich12 mpich ocl-icd-libopencl1
Suggested packages:
  blcr-dkms libhwloc-contrib-plugins blcr-util mpich-doc opencl-icd
The following NEW packages will be installed:
  hwloc-nox libcr-dev libcr0 libhwloc-plugins libhwloc5 libmpich-dev libmpich12 mpich ocl-icd-libopencl1
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,872 kB of archives.
After this operation, 14.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [870 B]
Get:3 http://mirrors.cn99.com/ubuntu bionic/universe amd64 libcr-dev amd64 0.8.5-2.3 [24.4 kB]
Get:8 http://mirror.dlut.edu.cn/ubuntu bionic/universe amd64 libmpich12 amd64 3.3~a2-4 [945 kB]                                                                                                      
Ign:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic/main amd64 ocl-icd-libopencl1 amd64 2.2.11-1ubuntu1                                                                                   
Get:7 http://mirror.lzu.edu.cn/ubuntu bionic/universe amd64 libhwloc-plugins amd64 1.11.9-1 [12.5 kB]                                                                                                
Get:4 https://mirror.bjtu.edu.cn/ubuntu bionic/universe amd64 libhwloc5 amd64 1.11.9-1 [105 kB]                                                                        
Get:5 http://mirrors.dgut.edu.cn/ubuntu bionic/universe amd64 hwloc-nox amd64 1.11.9-1 [157 kB]                                           
Get:10 http://mirrors.dgut.edu.cn/ubuntu bionic/universe amd64 mpich amd64 3.3~a2-4 [205 kB]                       
Ign:2 http://mirrors.sohu.com/ubuntu bionic/universe amd64 libcr0 amd64 0.8.5-2.3                                                                                                                    
Ign:9 http://mirrors.sohu.com/ubuntu bionic/universe amd64 libmpich-dev amd64 3.3~a2-4
Ign:6 http://mirrors.sohu.com/ubuntu bionic/main amd64 ocl-icd-libopencl1 amd64 2.2.11-1ubuntu1
Get:2 http://mirrors.ustc.edu.cn/ubuntu bionic/universe amd64 libcr0 amd64 0.8.5-2.3 [18.9 kB]
Get:9 http://mirrors.huaweicloud.com/repository/ubuntu bionic/universe amd64 libmpich-dev amd64 3.3~a2-4 [1,374 kB]
Get:6 http://mirrors.skyshe.cn/ubuntu bionic/main amd64 ocl-icd-libopencl1 amd64 2.2.11-1ubuntu1 [30.3 kB]
Fetched 2,873 kB in 24s (118 kB/s)                                                                                                                                                                   
Selecting previously unselected package libcr0.
(Reading database ... 223044 files and directories currently installed.)
Preparing to unpack .../0-libcr0_0.8.5-2.3_amd64.deb ...
Unpacking libcr0 (0.8.5-2.3) ...
Selecting previously unselected package libcr-dev.
Preparing to unpack .../1-libcr-dev_0.8.5-2.3_amd64.deb ...
Unpacking libcr-dev (0.8.5-2.3) ...
Selecting previously unselected package libhwloc5:amd64.
Preparing to unpack .../2-libhwloc5_1.11.9-1_amd64.deb ...
Unpacking libhwloc5:amd64 (1.11.9-1) ...
Selecting previously unselected package hwloc-nox.
Preparing to unpack .../3-hwloc-nox_1.11.9-1_amd64.deb ...
Unpacking hwloc-nox (1.11.9-1) ...
Selecting previously unselected package ocl-icd-libopencl1:amd64.
Preparing to unpack .../4-ocl-icd-libopencl1_2.2.11-1ubuntu1_amd64.deb ...
Unpacking ocl-icd-libopencl1:amd64 (2.2.11-1ubuntu1) ...
Selecting previously unselected package libhwloc-plugins.
Preparing to unpack .../5-libhwloc-plugins_1.11.9-1_amd64.deb ...
Unpacking libhwloc-plugins (1.11.9-1) ...
Selecting previously unselected package libmpich12:amd64.
Preparing to unpack .../6-libmpich12_3.3~a2-4_amd64.deb ...
Unpacking libmpich12:amd64 (3.3~a2-4) ...
Selecting previously unselected package libmpich-dev.
Preparing to unpack .../7-libmpich-dev_3.3~a2-4_amd64.deb ...
Unpacking libmpich-dev (3.3~a2-4) ...
Selecting previously unselected package mpich.
Preparing to unpack .../8-mpich_3.3~a2-4_amd64.deb ...
Unpacking mpich (3.3~a2-4) ...
Setting up libcr0 (0.8.5-2.3) ...
Setting up libhwloc5:amd64 (1.11.9-1) ...
Setting up ocl-icd-libopencl1:amd64 (2.2.11-1ubuntu1) ...
Setting up libcr-dev (0.8.5-2.3) ...
Setting up hwloc-nox (1.11.9-1) ...
Setting up libmpich12:amd64 (3.3~a2-4) ...
Setting up libmpich-dev (3.3~a2-4) ...
update-alternatives: using /usr/include/mpich to provide /usr/include/mpi (mpi) in auto mode
Setting up libhwloc-plugins (1.11.9-1) ...
Setting up mpich (3.3~a2-4) ...
update-alternatives: using /usr/bin/mpirun.mpich to provide /usr/bin/mpirun (mpirun) in auto mode
Processing triggers for doc-base (0.10.8) ...
Processing 1 added doc-base file...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...

./w3_make 成功

##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_new
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
 
##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_clean 
 
                *****************************
              ***   WAVEWATCH III clean     ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
   Clean up /home/xuniji1/WW3_607_2/model/tmp
   Clean up /home/xuniji1/WW3_607_2/model/bin
   Clean up /home/xuniji1/WW3_607_2/model/ftn
   Clean up /home/xuniji1/WW3_607_2/model/aux
   Remove /home/xuniji1/WW3_607_2/model/mod
   Remove /home/xuniji1/WW3_607_2/model/mod_MPI
   Remove /home/xuniji1/WW3_607_2/model/obj
   Remove /home/xuniji1/WW3_607_2/model/obj_MPI
   Remove /home/xuniji1/WW3_607_2/model/tmp


##
xuniji1@xuniji1-virtual-machine:~/WW3_607_2/model/bin$ ./w3_make 
 
                *****************************
              ***   WAVEWATCH III make      ***
                *****************************
 
 Exporting WWATCH3_ENV=/home/xuniji1/WW3_607_2/model/bin/wwatch3.env
Main directory    : /home/xuniji1/WW3_607_2/model
Scratch directory : /home/xuniji1/WW3_607_2/model/tmp
Save source codes : yes
Save listings     : yes
 
[INFO] list of the programs selected : ww3_grid ww3_strt ww3_bound ww3_outf ww3_outp ww3_trck ww3_grib ww3_gint gx_outf gx_outp ww3_uprstr ww3_multi ww3_sbs1 libww3 ww3_systrk ww3_gspl ww3_prep ww3_shel ww3_prnc ww3_ounf ww3_ounp ww3_bounc ww3_trnc
WARNING: NC4 is set in WWATCH3_NETCDF but not in the switch file
 
 
Processing ww3_grid
---------------------
ad3 : processing constants 
ad3 : processing w3servmd 
ad3 : processing w3gsrumd 
ad3 : processing w3arrymd 
ad3 : processing w3gdatmd 
ad3 : processing w3odatmd 
ad3 : processing w3idatmd 
ad3 : processing w3nmlgridmd 
ad3 : processing w3dispmd 
ad3 : processing w3adatmd 
ad3 : processing w3timemd 
ad3 : processing wmmdatmd 
ad3 : processing w3src4md 
ad3 : processing w3triamd 
ad3 : processing w3parall 
ad3 : processing w3snl1md 
ad3 : processing w3wdatmd 
ad3 : processing w3iogrmd 
ad3 : processing ww3_grid 
      Linking ww3_grid
 
Processing ww3_strt
---------------------
ad3 : processing w3iorsmd 
ad3 : processing w3sdb1md 
ad3 : processing w3sbt1md 
ad3 : processing ww3_strt 
      Linking ww3_strt
 
Processing ww3_bound
---------------------
ad3 : processing w3cspcmd 
ad3 : processing w3iobcmd 
ad3 : processing ww3_bound 
      Linking ww3_bound
 
Processing ww3_outf
---------------------
ad3 : processing w3iogomd 
ad3 : processing ww3_outf 
      Linking ww3_outf
 
Processing ww3_outp
---------------------
ad3 : processing w3iopomd 
ad3 : processing w3bullmd 
ad3 : processing w3partmd 
ad3 : processing w3flx1md 
ad3 : processing ww3_outp 
      Linking ww3_outp
 
Processing ww3_trck
---------------------
ad3 : processing ww3_trck 
      Linking ww3_trck
 
Processing ww3_grib
---------------------
ad3 : processing ww3_grib 
      Linking ww3_grib
 
Processing ww3_gint
---------------------
ad3 : processing ww3_gint 
      Linking ww3_gint
 
Processing gx_outf
---------------------
ad3 : processing gx_outf 
      Linking gx_outf
 
Processing gx_outp
---------------------
ad3 : processing gx_outp 
      Linking gx_outp
 
Processing ww3_uprstr
---------------------
ad3 : processing ww3_uprstr 
      Linking ww3_uprstr
 
Processing ww3_multi
---------------------
ad3 : processing w3initmd 
ad3 : processing w3nmlmultimd 
ad3 : processing wmfinlmd 
ad3 : processing w3fldsmd 
ad3 : processing wmgridmd 
ad3 : processing w3updtmd 
ad3 : processing wmunitmd 
ad3 : processing w3iosfmd 
ad3 : processing w3iotrmd 
ad3 : processing w3uqckmd 
ad3 : processing w3profsmd 
ad3 : processing w3srcemd 
ad3 : processing wmupdtmd 
ad3 : processing w3wdasmd 
ad3 : processing wminiomd 
ad3 : processing wmiopomd 
ad3 : processing w3pro3md 
ad3 : processing wminitmd 
ad3 : processing w3wavemd 
ad3 : processing wmwavemd 
ad3 : processing ww3_multi 
      Linking ww3_multi
 
Processing ww3_sbs1
---------------------
ad3 : processing ww3_sbs1 
      Linking ww3_sbs1
 
Processing libww3
---------------------
ar: creating libww3.a
a - wmmdatmd.o
a - w3gdatmd.o
a - w3wdatmd.o
a - w3adatmd.o
a - w3idatmd.o
a - w3odatmd.o
a - w3fldsmd.o
a - w3initmd.o
a - w3wavemd.o
a - w3wdasmd.o
a - w3updtmd.o
a - w3profsmd.o
a - w3pro3md.o
a - w3uqckmd.o
a - w3triamd.o
a - w3srcemd.o
a - w3flx1md.o
a - w3src4md.o
a - w3snl1md.o
a - w3sbt1md.o
a - w3sdb1md.o
a - w3iogrmd.o
a - w3iogomd.o
a - w3iopomd.o
a - w3iotrmd.o
a - w3iorsmd.o
a - w3iobcmd.o
a - w3iosfmd.o
a - w3partmd.o
a - constants.o
a - w3servmd.o
a - w3timemd.o
a - w3arrymd.o
a - w3dispmd.o
a - w3cspcmd.o
a - w3gsrumd.o
 
Processing ww3_systrk
---------------------
ad3 : processing w3strkmd 
ad3 : processing ww3_systrk 
      Linking ww3_systrk
 
Processing ww3_gspl
---------------------
ad3 : processing ww3_gspl 
      Linking ww3_gspl
 
Processing ww3_prep
---------------------
ad3 : processing ww3_prep 
      Linking ww3_prep
 
Processing ww3_shel
---------------------
ad3 : processing w3nmlshelmd 
ad3 : processing ww3_shel 
      Linking ww3_shel
 
Processing ww3_prnc
---------------------
ad3 : processing w3nmlprncmd 
ad3 : processing ww3_prnc 
      Linking ww3_prnc
 
Processing ww3_ounf
---------------------
ad3 : processing w3nmlounfmd 
ad3 : processing ww3_ounf 
      Linking ww3_ounf
 
Processing ww3_ounp
---------------------
ad3 : processing w3nmlounpmd 
ad3 : processing ww3_ounp 
      Linking ww3_ounp
 
Processing ww3_bounc
---------------------
ad3 : processing w3nmlbouncmd 
ad3 : processing ww3_bounc 
      Linking ww3_bounc
 
Processing ww3_trnc
---------------------
ad3 : processing w3nmltrncmd 
ad3 : processing ww3_trnc 
      Linking ww3_trnc
 
 
                       **********************
                     *** end of compilation ***
                       **********************

整个流程感受

在2021-11-20的今天,上午11点半左右,终于实现了ww3中./w3_make的编译,非常高兴,甚至是兴奋。为什么有这么大的感触呢,以至于想写写自己的感想?因为在内心深处,这不仅仅是一个文件编译实现的问题,而是面对困难、挑战,一个锲而不舍、不言放弃的精神鼓舞。
最开始接触ww3是在2021-10-20附近,最开始完全是一脸蒙蔽状态,啥都不知道,还曾质疑github上ww3教程~~
从github上ww3的manual手册出发,看到install那一章节,不行…,反过来去看github上的issue以及wiki,还是不行…,尝试去问问题,发现issue问题只能是关于bug的问题,而我…,然后尝试ww3上通过邮件询问问题,不知道怎么操作…,很烦,特别烦,一段时间放弃看这个,去看了关于可视化和Linux相关的知识,还有深度学习的pytorch使用,挺有趣的~~
又需要看ww3,内心有点绝望,为了缓解内心的痛楚,我开始尝试去网上寻求帮忙…,在这个过程中,我并没有抱着很大的希望,但总是时不时的看到一些有趣的知识感到高兴(知识不一定与ww3相关),然后也会看到相关ww3的一些文章、作者、大佬、问题,有时感觉希望大了,但不久又会被打脸,唉,太难了…,虽然难,但我知道我在成长,知乎、ResearchGate、CSDN、气象家园、QQ群、微信公众号、知网、bilibili、Teacher,痛苦并快乐着~~
今天,早上一起来,不想用办公室的那个电脑了,先玩玩电脑的虚拟机,玩着玩着,找到感觉了,突然发现,QQ、clash联网、中文输入法,终端多开、文件夹多开、网页多开,文档也可以躲开,嘿嘿,配合着jupyter的使用,舒服呀,找到感觉了~~因为前面这些貌似与ww3没有关系的准备,心情舒畅了,然后呢?当然是用脑子分析问题了,怎么分析呢?这里就特别感谢气象家园里面的一篇文章,他把所有的环境、代码相关的内容都亮出来,再问问题,那我就学他怎么记录下自己的整个代码流程,慢慢的,发现,问题明显了,有目标针对了,然后,神奇的解决了~~哈哈
所有这个过程中看似与ww3无关的准备,都不是白费的~~
多看看别人怎么做的,多与别人交流,多想别人请教,非常快乐~~
多记录过程,不要觉得浪费时间,这才是最高效的,因为你能慢慢地感受所有的信息,爽吧,爽着问题就出现了,那么继续爽~~

http://bbs.06climate.com/forum.php?mod=viewthread&tid=68742&page=2




Author: Jincan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Jincan !
  TOC