更新 Fortran/SUB_BOUND.f90

This commit is contained in:
zzx 2025-05-09 17:56:57 +08:00
parent c852e41e3c
commit 76b4c54955

View File

@ -1,11 +1,11 @@
! ================================================================================== ! ==================================================================================
! !
! ================================================================================== ! ==================================================================================
! !
! ndata个数据点1 ! ndata个数据点1
! !
! Q=C1*B*e*dZ^C2Z>Ztide且Z>Zctr时开闸 ! Q=C1*B*e*dZ^C2Z>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)