MAIN_UFRN/Fortran/MAIN_UFRN.f90

350 lines
11 KiB
Fortran
Raw Normal View History

2025-05-14 17:42:10 +08:00
SUBROUTINE MAIN_UFRN(nriver ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
nsect ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
krc ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
ndata ,& !<21><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
Ns ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Pc ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Nrc ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD>κ<EFBFBD>
Lc ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Dric ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
XJ ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Asave ,& <><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ds ,& !<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bd ,& !<21><><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD>׿<EFBFBD>
zd ,& !<21><><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD>׸߳<D7B8>
sm ,& !<21><><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
rough ,& !<21><><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ZZ0 ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼˮλ
Zctr ,& !<21>ӵ<EFBFBD>ĩ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>բ<EFBFBD><D5A2><EFBFBD>п<EFBFBD><D0BF><EFBFBD>ˮλ
Qp ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UB1 ,& !<21><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>1<EFBFBD><31><EFBFBD><EFBFBD>ˮλ<CBAE>߽磬2<E7A3AC><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>,3<><33><EFBFBD><EFBFBD>ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
UB2 ,& !<21><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽磬2<E7A3AC><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߽磩
DB1 ,& !<21><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>1<EFBFBD><31><EFBFBD><EFBFBD>ˮλ<CBAE>߽磬2<E7A3AC><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>,3<><33><EFBFBD><EFBFBD>ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
DB2 ,& !<21><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽磬2<E7A3AC><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߽磩
UBV ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A6>ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NUB ,& !<21><><EFBFBD><EFBFBD><EFBFBD>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĺӵ<C4BA><D3B5><EFBFBD><EFBFBD>š<EFBFBD>΢<EFBFBD>α<EFBFBD><CEB1><EFBFBD>
DBV ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A6>ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ<EFBFBD>³<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
Gate ,& !Gate(1,i) = բ<><D5A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Gate(2,i) = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Gate(3,i) = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽC1<43><31>Gate(4,i) = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽC2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽQ=C1*B*e*dZ^C2<43>е<EFBFBD>C1<43><31>C2<43><32>
NDB ,& !<21><><EFBFBD><EFBFBD><EFBFBD>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĺӵ<C4BA><D3B5><EFBFBD><EFBFBD>š<EFBFBD>΢<EFBFBD>α<EFBFBD><CEB1><EFBFBD>
Aphi ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߽磨<DFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
period ,& !<21><><EFBFBD><EFBFBD>Сʱ<D0A1><CAB1>
dt ,& !<21><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BD>
sita ,& <><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽȨϵ<C8A8><CFB5>
sorz ,& !ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
sorq ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
epsz ,& !ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD>
epsq ,& !<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD>
Bsor1 ,& !ˮբ<CBAE><D5A2><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
Bsor2 ,& !<21>ܺ<EFBFBD><DCBA>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
Z ,& !<21><><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ˮλ
Q )& !<21><><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
BIND(C, NAME="MAIN_UFRN")
!DEC$ ATTRIBUTES DLLEXPORT::MAIN_UFRN
IMPLICIT NONE
INTEGER::nriver ! <20>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
INTEGER::nsect ! <20>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
INTEGER::krc ! <20>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
INTEGER::ndata ! <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INTEGER::MRIVER
integer River,tstep
INTEGER::I
INTEGER::II
! <20>ӵ<EFBFBD><D3B5><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
INTEGER::Ns(nriver) ! <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::Pc(nriver) ! <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::Nrc(krc,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><>ͨ<EFBFBD><CDA8>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD><E2A3A9>ά<EFBFBD><CEAC>: KRC, NRIVER<45><52>
INTEGER::Lc(krc,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>΢<EFBFBD>α<EFBFBD><CEB1>ţ<EFBFBD>ά<EFBFBD><CEAC>: KRC, NRIVER<45><52>
!<21>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>
INTEGER::UB1(nriver) ! <20><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-ˮλ<CBAE><CEBB>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::UB2(nriver) ! <20><><EFBFBD>α߽<CEB1>λ<EFBFBD>ã<EFBFBD>1-<2D><><EFBFBD>߽磬2-<2D>ڱ߽磩<DFBD><E7A3A9>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::DB1(nriver) ! <20><><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::DB2(nriver) ! <20><><EFBFBD>α߽<CEB1>λ<EFBFBD>ã<EFBFBD>ͬ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ά<EFBFBD><CEAC>: NRIVER<45><52>
INTEGER::NUB(2,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD>ӵĺӵ<C4BA><D3B5><EFBFBD>΢<EFBFBD>Σ<EFBFBD>ά<EFBFBD><CEAC>: 2, NRIVER<45><52>
INTEGER::NDB(2,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD>ӵĺӵ<C4BA><D3B5><EFBFBD>΢<EFBFBD>Σ<EFBFBD>ά<EFBFBD><CEAC>: 2, NRIVER<45><52>
REAL::ZZ0 ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼˮλ<CBAE><CEBB>m<EFBFBD><6D>
REAL::Zctr ! <20>ӵ<EFBFBD>ĩ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>բ<EFBFBD><D5A2><EFBFBD><EFBFBD>ˮλ<CBAE><CEBB>m<EFBFBD><6D>
REAL::period ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Сʱ<D0A1><CAB1>
REAL::dt ! <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BD><EFBFBD><EFBFBD><EFBFBD>
REAL::sita ! <20><><EFBFBD><EFBFBD>ʽȨϵ<C8A8><CFB5><EFBFBD><EFBFBD>0.5~1.0<EFBFBD><EFBFBD>
REAL::sorz ! ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>ӣ<EFBFBD>0~1<><31>
REAL::sorq ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>ӣ<EFBFBD>0~1<><31>
REAL::epsz ! ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>m<EFBFBD><6D>
REAL::epsq ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>m?/s<><73>
REAL::Bsor1 ! ˮբ<CBAE>߽<EFBFBD><DFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
REAL::Bsor2 ! <20>ܺ<EFBFBD><DCBA>߽<EFBFBD><DFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
REAL::ql
REAL::condu,condd(3)
REAL::Bs,As,Rs,Cs
!<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
REAL::Dric(krc,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: KRC, NRIVER<45><52>
REAL::Qj(ndata,krc,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>ά<EFBFBD><CEAC>: NDATA, KRC, NRIVER<45><52>
REAL::Asave(krc,nriver) ! <20><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m?<3F><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: KRC, NRIVER<45><52>
!<21>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
REAL::ds(nsect - 1,nriver) ! ΢<>γ<EFBFBD><CEB3>ȣ<EFBFBD>m<EFBFBD><6D><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: nsect - 1, NRIVER<45><52>
REAL::bd(nsect,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>m<EFBFBD><6D><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NSECT, NRIVER<45><52>
REAL::zd(nsect,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD>׸̣߳<DFB3>m<EFBFBD><6D><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NSECT, NRIVER<45><52>
REAL::sm(nsect,nriver) ! <20><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NSECT, NRIVER<45><52>
REAL::rough(nsect,nriver) ! <20><><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NSECT, NRIVER<45><52>
!<21>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
REAL::UBV(ndata,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>ˮλ/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>ά<EFBFBD><CEAC>: NDATA, NRIVER<45><52>
REAL::DBV(ndata,nriver) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>ˮλ/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>ά<EFBFBD><CEAC>: NDATA, NRIVER<45><52>
REAL::Gate(4,nriver) ! բ<>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C1<43><31>C2<43><32><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: 4, NRIVER<45><52>
REAL::Aphi(2,nriver) ! <20>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: 2, NRIVER<45><52>
REAL::Qp(ndata) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>m?/s<><73><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>: NDATA<54><41>
REAL::Z0(nsect,nriver)
REAL::Q0(nsect,nriver)
REAL::Z(nsect,nriver)
REAL::Q(nsect,nriver)
REAL::V(nsect,nriver)
REAL::Zc(nsect,nriver),Qc(nsect,nriver)
REAL::XJ(ndata,nriver*krc)
REAL::maxtstep
REAL::maxiter
REAL::ttime
REAL::fc
REAL::Scanal
REAL::dzmax
REAL::dqmax
REAL::dz
REAL::dq
REAL::maxz_r
REAL::maxz_s
REAL::maxq_r
REAL::maxq_s
INTEGER::Is
INTEGER::iter
INTEGER::J,K
MRIVER = nsect - 1
Scanal = 0.0 ! Scanal<61><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кӵ<D0BA><D3B5>ĺϼƳ<CFBC><C6B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ql
DO I = 1,ndata
DO J = 1,KRC
DO K = 1,NRIVER
Qj(i,j,k) = xj(i,j*k)
end do
end do
end do
DO J = 1,nriver
DO I = 1,Ns(j)-1
Scanal = Scanal + ds(i,j) ! ÿ<><C3BF><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>΢<EFBFBD>εij<CEB5><C4B3>ȣ<EFBFBD><C8A3><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><E3A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ȡ0<C8A1><30>ÿ<EFBFBD><C3BF><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>ĩ΢<C4A9>γ<EFBFBD><CEB3>ȱ<EFBFBD><C8B1><EFBFBD>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
END DO
END DO
! <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BD>
maxtstep=period*3600/dt
maxiter=1000 ! <20><><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E2B2BD>
! <20><><EFBFBD>ӵ<EFBFBD>ˮλ<CBAE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
DO river=1,nriver
DO Is=1,Ns(river)
Z0(Is,river)=ZZ0
Q0(Is,river)=0.0
END DO
END DO
DO tstep=1,maxtstep ! <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD>
ttime=dt*tstep/3600.0 ! <20><>ʵʱ<CAB5><CAB1>
iter=0
DO river=1,nriver
DO Is=1,Ns(river)
Z(Is,river)=Z0(Is,river)
Q(Is,river)=Q0(Is,river)
END DO
END DO
! <20><><EFBFBD>㵱ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
call int_a( ttime ,& ! <20><>ʵʱ<CAB5><CAB1> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ndata ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
Qp ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
fc ) ! <20><>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ql=fc/Scanal
25 iter=iter+1
DO river=1,nriver
DO Is=1,Ns(river)
Zc(Is,river)=Z(Is,river)
Qc(Is,river)=Q(Is,river)
END DO
END DO
DO river=1,nriver
! ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>̺Ӷ<CCBA><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
call sub_bound( NRIVER ,&
NSECT ,&
MRIVER ,&
KRC ,&
NDATA ,&
river ,&
tstep ,&
Ns ,&
Pc ,&
Nrc ,&
Lc ,&
Dric ,&
Qj ,&
Asave ,&
UB1 ,&
UB2 ,&
DB1 ,&
DB2 ,&
NUB ,&
NDB ,&
UBV ,&
Aphi ,&
DBV ,&
Gate ,&
ql ,&
Zctr ,&
dt ,&
sita ,&
Bsor1 ,&
Bsor2 ,&
Z0 ,&
Q0 ,&
Z ,&
Q ,&
V ,&
condu ,&
condd )
! <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>δ֪ʱ<D6AA><CAB1>ˮλZ<CEBB><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Q
call sub_QZ( NRIVER ,&
NSECT ,&
MRIVER ,&
KRC ,&
NDATA ,&
river ,&
tstep ,&
Ns ,&
Pc ,&
Nrc ,&
Lc ,&
Dric ,&
Qj ,&
Asave ,&
ds ,&
bd ,&
zd ,&
sm ,&
rough ,&
UB1 ,&
UB2 ,&
DB1 ,&
DB2 ,&
NUB ,&
NDB ,&
UBV ,&
Aphi ,&
DBV ,&
Gate ,&
ql ,&
Zctr ,&
dt ,&
sita ,&
Bsor1 ,&
Bsor2 ,&
Z0 ,&
Q0 ,&
Z ,&
Q ,&
V ,&
condu ,&
condd ,&
Bs ,&
As ,&
Rs ,&
Cs )
END DO
dzmax=0.0
dqmax=0.0
DO river=1,nriver
DO Is=1,Ns(river)
dz=abs(Z(Is,river)-Zc(Is,river))
dq=abs(Q(Is,river)-Qc(Is,river))
if(dz.gt.dzmax)then
dzmax=dz
maxz_r=river
maxz_s=Is
end if
if(dq.gt.dqmax)then
dqmax=dq
maxq_r=river
maxq_s=Is
end if
END DO
END DO
if(dzmax.gt.epsz.or.dqmax.gt.epsq)then
DO river=1,nriver
DO Is=1,Ns(river)
Z(Is,river)=(1.0-sorz)*Zc(Is,river)&
+sorz*Z(Is,river)
Q(Is,river)=(1.0-sorq)*Qc(Is,river)&
+sorq*Q(Is,river)
END DO
END DO
if(iter.le.maxiter)then
goto 25
else
exit
end if
else
DO river=1,nriver
DO Is=1,Ns(river)
! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BCB8>Ҫ<EFBFBD><D2AA>
call sub_sect(NRIVER ,&
NSECT ,&
MRIVER ,&
KRC ,&
NDATA ,&
river,Is,Z(Is,river),&
ds ,&
bd ,&
zd ,&
sm ,&
rough ,&
Bs ,&
As ,&
Rs ,&
Cs )
V(Is,river)=Q(Is,river)/As
END DO
END DO
DO river=1,nriver
DO Is=1,Ns(river)
Z0(Is,river)=Z(Is,river)
Q0(Is,river)=Q(Is,river)
END DO
END DO
end if
end do
END SUBROUTINE MAIN_UFRN