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