Inlet算例运行和验证

前提条件

FVCOM需要根据算例编译可执行文件,如果使用inlet算例,则需按照编译和安装流程将“make.inc”文件更换为Intel算例的“make.inc”文件重新编译,并修改“/path/to/FVCOM/FVCOM_source”目录下“mod_cstms_vars.F”“mod_sed_cstms.F”文件,其余步骤与编译和安装相同。

  1. 执行以下命令修改“mod_cstms_vars.F”文件。

    1. 打开“mod_cstms_vars.F”文件。
      vi mod_cstms_vars.F
    2. 按“i”进入编辑模式,修改如下内容。
      修改前:
      494       (/       "bo_sd50"                                     &
      529       (/        "mean grain diameter"                  &
      563       character(len=80), dimension(34) :: bot_units = (" m","kg&
      568       character(len=80), dimension(5) :: bed_snames = (/"bed_thick","bed_age","bed_por","bed_diff","bed_btcr"/)
      569       character(len=80), dimension(5) :: bed_lnames = (/"bed layer thickness","bed layer age","bed layer porosity","bed layer bio-diffusivity","bed critical stress"/)
      570       character(len=80), dimension(5) :: bed_units = (/"m","days","-","-","N/m2"/)
      修改后:
      494       (/character(80):: "bo_sd50"                                     &
      529       (/ character(80)::         "mean grain diameter"                  &
      563       character(len=80), dimension(34) :: bot_units = (/character(80)::" m","kg&
      568       character(len=80), dimension(5) :: bed_snames = (/character(80)::"|        (/"bed_thick","bed_age","bed_por","bed_diff","bed_btcr"/)
      569       character(len=80), dimension(5) :: bed_lnames = (/character(80)::"bed layer thickness","bed layer age","bed layer porosity","bed layer bio-diffusivity","bed critical stress"/)
      570       character(len=80), dimension(5) :: bed_units = (/character(80)::"m","days","-","-","N/m2"/)
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  2. 执行以下命令修改“mod_sed_cstms.F”文件。

    1. 打开“mod_sed_cstms.F”文件。
      vi mod_sed_cstms.F
    2. 按“i”进入编辑模式,修改如下内容。
      修改前:
      5797     IF(BACKWARD_ADVECTION==.TRUE.)THEN
      修改后:
      5797     IF(BACKWARD_ADVECTION .EQV. .TRUE.)THEN
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

操作步骤

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

    mkdir -p /path/to/FVCOM/test
    cd /path/to/FVCOM/test

  3. 执行以下命令复制测试算例到当前目录。

    cp -r /path/to/FVCOM/FVCOM4.1/Examples/cohesive_bed/tidal_inlet/ ./

  4. 执行以下命令进入运行目录。

    cd ./tidal_inlet/run

  5. 执行以下命令编辑算例输入文件。

    1. 打开算例输入文件。
      vi inlet_run.nml
    2. 按“i”进入编辑模式,为“none”“inlet_nesting.nc”“inlet_nesting.nc”增加单引号。
      NCNEST_NODE_FILES_WAVE  = 'none'
      NESTING_FILE_NAME       = 'inlet_nesting.nc'
      NESTING_FILE_NAME_WAVE  = 'inlet_nesting_wave.nc'
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  6. 执行以下命令运行测试。

    time mpirun -np 96 --allow-run-as-root --bind-to core /path/to/FVCOM/FVCOM4.1/FVCOM_source/fvcom --casename=inlet

    结果样例如下所示。