更新 Fortran/SUB_BOUND.f90
This commit is contained in:
parent
c852e41e3c
commit
76b4c54955
@ -1,11 +1,11 @@
|
|||||||
! ==================================================================================
|
! ==================================================================================
|
||||||
! 确定计算时刻河段上下游边界条件值的子程序
|
! 确定计算时刻河段上下游边界条件值的子程序
|
||||||
! ==================================================================================
|
! ==================================================================================
|
||||||
!
|
!
|
||||||
! 说明:下游外边界条件都给定一个过程,有ndata个数据点(1小时间隔),水位边界即为水位过程,
|
! 说明:下游外边界条件都给定一个过程,有ndata个数据点(1小时间隔),水位边界即为水位过程,
|
||||||
! 流量边界即为流量过程,水位流量关系边界只限挡潮闸情况,给出闸下潮位过程。
|
! 流量边界即为流量过程,水位流量关系边界只限挡潮闸情况,给出闸下潮位过程。
|
||||||
! 河道末端挡潮闸水位流量关系简化成Q=C1*B*e*dZ^C2。Z>Ztide且Z>Zctr时开闸,
|
! 河道末端挡潮闸水位流量关系简化成Q=C1*B*e*dZ^C2。Z>Ztide且Z>Zctr时开闸,
|
||||||
! 否则关闸,Zctr是挡潮闸运行控制水位,保证内河不会过低。
|
! 否则关闸,Zctr是挡潮闸运行控制水位,保证内河不会过低。
|
||||||
! ----------------------------------------------------------------------------------
|
! ----------------------------------------------------------------------------------
|
||||||
SUBROUTINE SUB_BOUND( NRIVER ,&
|
SUBROUTINE SUB_BOUND( NRIVER ,&
|
||||||
NSECT ,&
|
NSECT ,&
|
||||||
@ -57,12 +57,15 @@ SUBROUTINE SUB_BOUND( NRIVER ,&
|
|||||||
INTEGER::Ns(nriver),Pc(nriver),Nrc(krc,nriver),Lc(krc,nriver)
|
INTEGER::Ns(nriver),Pc(nriver),Nrc(krc,nriver),Lc(krc,nriver)
|
||||||
REAL::Dric(krc,nriver),Qj(ndata,krc,nriver),Asave(krc,nriver)
|
REAL::Dric(krc,nriver),Qj(ndata,krc,nriver),Asave(krc,nriver)
|
||||||
! boundary
|
! boundary
|
||||||
INTEGER::UB1(nriver),UB2(nriver),DB1(nriver),DB2(nriver),NUB(2,nriver),NDB(2,nriver)
|
INTEGER::UB1(nriver),UB2(nriver),DB1(nriver),DB2(nriver),&
|
||||||
REAL::UBV(ndata,nriver),Aphi(2,nriver),DBV(ndata,nriver),Gate(4,nriver),ql,Zctr
|
NUB(2,nriver),NDB(2,nriver)
|
||||||
|
REAL::UBV(ndata,nriver),Aphi(2,nriver),DBV(ndata,nriver),&
|
||||||
|
Gate(4,nriver),ql,Zctr
|
||||||
! calcu
|
! calcu
|
||||||
REAL::dt,sita,Bsor1,Bsor2
|
REAL::dt,sita,Bsor1,Bsor2
|
||||||
! zzqq
|
! zzqq
|
||||||
REAL::Z0(nsect,nriver),Q0(nsect,nriver),Z(nsect,nriver),Q(nsect,nriver),V(nsect,nriver)
|
REAL::Z0(nsect,nriver),Q0(nsect,nriver),Z(nsect,nriver),&
|
||||||
|
Q(nsect,nriver),V(nsect,nriver)
|
||||||
! r_bv
|
! r_bv
|
||||||
REAL::condu,condd(3)
|
REAL::condu,condd(3)
|
||||||
|
|
||||||
@ -72,14 +75,14 @@ SUBROUTINE SUB_BOUND( NRIVER ,&
|
|||||||
|
|
||||||
TC=DT*FLOAT(TSTEP)/3600.0
|
TC=DT*FLOAT(TSTEP)/3600.0
|
||||||
|
|
||||||
! 上游边界处理
|
! 上游边界处理
|
||||||
IF(UB2(RIVER).EQ.1)THEN ! 外
|
IF(UB2(RIVER).EQ.1)THEN ! 外
|
||||||
DO II=1,NDATA
|
DO II=1,NDATA
|
||||||
ZQ(II)=UBV(II,RIVER)
|
ZQ(II)=UBV(II,RIVER)
|
||||||
END DO
|
END DO
|
||||||
CALL INT_A(TC,NDATA,ZQ,FC)
|
CALL INT_A(TC,NDATA,ZQ,FC)
|
||||||
CONDU=FC
|
CONDU=FC
|
||||||
ELSEIF(UB2(RIVER).EQ.2)THEN ! 内
|
ELSEIF(UB2(RIVER).EQ.2)THEN ! 内
|
||||||
IR=NUB(1,RIVER)
|
IR=NUB(1,RIVER)
|
||||||
IS=NUB(2,RIVER)
|
IS=NUB(2,RIVER)
|
||||||
IF(UB1(RIVER).EQ.1)THEN
|
IF(UB1(RIVER).EQ.1)THEN
|
||||||
@ -90,7 +93,7 @@ SUBROUTINE SUB_BOUND( NRIVER ,&
|
|||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
! 下游边界处理
|
! 下游边界处理
|
||||||
IF(DB2(RIVER).EQ.1)THEN
|
IF(DB2(RIVER).EQ.1)THEN
|
||||||
DO II=1,NDATA
|
DO II=1,NDATA
|
||||||
ZQ(II)=DBV(II,RIVER)
|
ZQ(II)=DBV(II,RIVER)
|
||||||
|
Loading…
Reference in New Issue
Block a user