编译和安装

操作步骤

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令进入FVCOM安装包所在目录。

    cd /path/to/FVCOM

  3. 执行以下命令解压安装包。

    tar -xvf fvcom-4.1.tar.gz

  4. 执行以下命令进入解压后目录。

    cd FVCOM4.1

  5. 执行以下命令复制“make.inc_example”文件并更名为“make.inc”。

    cp Examples/Estuary/make.inc_example FVCOM_source/make.inc

  6. 执行以下命令创建“make.inc”文件软链接。

    ln -sf FVCOM_source/make.inc ./

  7. 执行以下命令编辑“make.inc”文件。

    1. 打开“make.inc”文件。
      vi make.inc
    2. 按“i”进入编辑模式,修改第51、79、80、97和99行的内容。

      第51行:

      TOPDIR = /path/to/FVCOM/FVCOM4.1/FVCOM_source

      需消除“/path/to/FVCOM/FVCOM4.1/FVCOM_source”后面的空格。

      第79、80行:

      LIBDIR = -L$(INSTALLDIR)/lib -L../METIS_source/metis -L./libs/julian
      INCDIR = -I$(INSTALLDIR)/include -I../METIS_source/metis -I./libs/julian

      需取消前面的#注释。

      第97行修改未#注释IOLIBS的内容:

      IOLIBS = -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz -lcurl -lm

      第98行修改未#注释IOINCS的内容:

      IOINCS = -I/path/to/NETCDF/include -I/path/to/HDF5/include

      请参考下图,注释并添加图中内容:

      执行7.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  8. 执行以下命令创建编译环境变量文件。

    1. 创建环境变量文件。
      vi env-fvcom.sh
    2. 按“i”进入编辑模式,添加如下内容。
      export CXX=mpicxx
      export CC=mpicc
      export MPI_HOME=/path/to/HMPI
      export PATH=$MPI_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH
      export HDF5=/path/to/HDF5
      export PATH=$HDF5/bin:$PATH
      export LD_LIBRARY_PATH=$HDF5/lib:$LD_LIBRARY_PATH
      export NETCDF=/path/to/NETCDF
      export PATH=$NETCDF/bin:$PATH
      export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  9. 执行以下命令加载环境变量。

    source env-fvcom.sh

  10. 执行以下命令进入metis安装路径。

    cd ./METIS_source

  11. 执行以下命令解压metis安装包。

    tar -zxvf metis.tgz
    cd metis
    sed -i 's/log2/log2_function/g' *.*

  12. 执行以下命令创建相应目录。

    mkdir -p /path/to/FVCOM/FVCOM4.1/FVCOM_source/libs/install/lib
    mkdir -p /path/to/FVCOM/FVCOM4.1/FVCOM_source/libs/install/include
    mkdir -p /path/to/FVCOM/FVCOM4.1/FVCOM_source/libs/install/bin

  13. 执行以下命令编译安装metis库。

    make
    make install

  14. 执行以下命令进入julian安装路径。

    cd ../../FVCOM_source/libs

  15. 执行以下命令解压julian.tgz安装包。

    tar -zxvf julian.tgz

  16. 执行以下命令进入解压后路径。

    cd julian

  17. 执行以下命令编译安装julian库。

    make
    make install

  18. 执行以下命令进入FVCOM安装路径。

    cd /path/to/FVCOM/FVCOM4.1/FVCOM_source

  19. 执行以下命令编辑“mod_newinp.F”文件。

    1. 打开“mod_newinp.F”文件。
      vi mod_newinp.F
    2. 按“i”进入编辑模式。
      第一个“contains”语句下添加以下加粗内容。
      !----------------------------------------
      ! functions
      !----------------------------------------
      contains
      Character( Len = 256 ) Function N_Fmt( c , n )
      Character( Len = * ) , Intent( IN ) :: c
      Integer , Intent( IN ) :: n
      integer :: i , j
      character( len = 16 ) :: cn
      i = index( c , '<' )
      j = index( c , '>' )
      write( cn , '(g0)' ) n
      N_Fmt = c(:i-1) // Trim(adjustL(cn)) // c(j+1:)
      End Function N_Fmt

      修改第352、421、494、567行的内容。

      第352行:

      write(*,N_Fmt('(A20,<size>F10.4)',SIZE))trim(argname)//': ',fval(1:SIZE)

      第421行:

      write(*,N_Fmt('(A20,<size>I10)',SIZE))trim(argname)//': ',ival(1:SIZE)

      第494行:

      write(*,N_Fmt('(A20,<size>L10)',SIZE))trim(argname)//': ',cval(1:SIZE)

      第567行:

      write(*,N_Fmt('(A20,<size>A10)',SIZE))trim(argname)//': ',sval(1:SIZE)

      执行19.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  20. 执行以下命令修改“mod_scal.F”、“internal_step.F”、“adv_t.F”、“adv_s.F”文件,对文件中以“IF(BACKWARD_ADVECTION”开头的语句进行相应修改,修改“==”为“.eqv.”,修改“/=”为“.neqv”。

    sed -i 's/\/=\.TRUE\./\.neqv\.\.TRUE\./g' mod_scal.F
    sed -i 's/==\.TRUE/\.eqv\.\.TRUE/g' internal_step.F
    sed -i 's/==\.FALSE\./\.eqv\.\.FALSE\./g' adv_t.F
    sed -i 's/==\.FALSE\./\.eqv\.\.FALSE\./g' adv_s.F

  21. 执行以下命令编辑“mod_utils.F”文件。

    1. 打开“mod_utils.F”文件。
      vi mod_utils.F
    2. 按“i”进入编辑模式,将其中的ISNAN函数修改为“IEEE USENAN”。
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  22. 执行以下命令编译安装FVCOM主程序。

    make

    安装成功后,可使用ll命令在当前目录查看生成的可执行文件“fvcom”。