• FVCOM泥沙模块河流边界处理


    简介

    入流河流携带泥沙可以按照节点和边界两种形式给定,这两种方法都是在相关的节点上进行直接赋值,并不能保证进入计算域内泥沙总体积。

    相关设置

    XX_run.nml 河流参数设置

     &NML_RIVER_TYPE
     RIVER_NUMBER    = 101,
     RIVER_TS_SETTING        = 'specified'
     RIVER_INFLOW_LOCATION   = 'node'
    

    XX_sediment.inp 泥沙参数设置

    SED_PTSOURCE = T
    

    相关变量

    variable type meaning
    NUMQBC_GL integer GLOBAL NUMBER OF FRESHWATER INFLOW NODES (RIVERS)
    NUMQBC integer LOCAL NUMBER OF FRESHWATER INFLOW NODES
    sed(i)%cdis(1:numqbc) real(sp), allocatable :: & allocate(sed(i)%cdis(500 )) 河流入流节点泥沙边界给定值

    河流入流边界

    入流边界处理
    mod_sed.F: Advance_Sed

      if(sed_source .and. .not. oned_model)then
        do i=1,nsed
          call bcond_scal_PTsource(sed(i)%conc, &
                                   sed(i)%cnew, &
                                   sed(i)%cdis) 
        end do
      endif
    

    函数bcond_scal_PTsource中直接给边界节点赋值

    mod_scal: Bcond_Scal_PTsource

      if(RIVER_TS_SETTING == 'specified') then
        if(numqbc > 0) then
          if(RIVER_INFLOW_LOCATION == 'node') then
            do i=1,numqbc
              j11=inodeq(i)
              do k=1,kbm1
                fn(j11,k)=fdis(i)
              end do
            end do
          else if(RIVER_INFLOW_LOCATION == 'edge') then
            do i=1,numqbc
              j11=n_icellq(i,1)
              j22=n_icellq(i,2)
              do k=1,kbm1
                fn(j11,k)=fdis(i)
                fn(j22,k)=fdis(i)
              end do
            end do
          end if
        end if
      end if
    
      return
    
  • 相关阅读:
    被学长教会的高斯消元法Gauss
    KMP字符串匹配算法翔解❤
    fkwの题目(祝松松生日快乐!)
    NOI-linux下VIM的个人常用配置
    从2017年暑假到现在手打的模板↑_↑
    【テンプレート】初级数据结构
    【テンプレート】高精
    DP(第二版)
    luogu P1029 最大公约数和最小公倍数问题
    贪心题整理
  • 原文地址:https://www.cnblogs.com/li12242/p/5114429.html
Copyright © 2020-2023  润新知