编译和安装

操作步骤

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

    cd /path/to/FVCOM

  3. 执行以下命令解压并编辑配置文件。

    tar -xvf fvcom-4.1.tar.gz
    cd FVCOM4.1

  4. 配置相关文件。

    • 执行以下命令复制“make.inc_example”文件为“make.inc”。
    cp Examples/Estuary/make.inc_example FVCOM_source/make.inc
    • 执行以下命令创建“make.inc”文件软链接。
    ln -sf FVCOM_source/make.inc ./
    • 执行以下命令编辑“make.inc”文件。
    vim make.inc

    按“i”进入编辑模式,修改以下内容。

    第51行。

    TOPDIR = /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 = -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz -lcurl -lm

    第98行。

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

    找到并注释掉并添加以下内容。

    #  Intel/MPI Compiler Definitions (SMAST)      
    #--------------------------------------------------------------------------
    #         CPP      = /usr/bin/cpp
    #         COMPILER = -DIFORT
    #         CC       = mpicc
    #         CXX      = mpicxx
    #         CFLAGS   = -O3
    #         FC       = mpif90
    #         DEBFLGS  = -check all traceback
    # Use 'OPT = -O0 -g'  for fast compile to test the make
    # Use 'OPT = -xP' for fast run on em64t (Hydra and Guppy)
    # Use 'OPT = -xN' for fast run on ia32 (Salmon and Minke)
    #         OPT      = -O0 –g
    #         OPT      = -axN –xN
    #         OPT      = -O3
     
    #  gfortran defs
    #--------------------------------------------------------------------------
              CPP      = /usr/bin/cpp
              COMPILER = -DGFORTRAN
              CC       = mpicc
              CXX      = mpicxx
              FC       = mpif90
              DEBFLGS  =
              OPT      = -O3 -ffixed-line-length-none -ffree-form -ffree-line-length-none
              CLIB     =

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

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

    vim env-fvcom.sh

    按“i”进入编辑模式,添加如下内容。

    export GCC_HOME=/path/to/GNU
    export PATH=$GCC_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64:$LD_LIBRARY_PATH
    export MPI_HOME=/path/to/OPENMPI
    export PATH=$MPI_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH
    export HDF5=/path/to/HDF5/install
    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

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

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

    source env-fvcom.sh

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

    vim mod_newinp.F

    按“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

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

  8. 执行以下命令修改第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)

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

  9. 执行以下命令修改“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

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

    vim mod_utils.F

    按“i”进入编辑模式,将其中的ISNAN函数修改为。

    “IEEE USENAN”

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

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

    make

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