350 lines
11 KiB
Fortran
350 lines
11 KiB
Fortran
|
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
|