43 lines
806 B
Fortran
43 lines
806 B
Fortran
! 根据区域入河流量过程,计算当时时刻的流量大小
|
|
|
|
SUBROUTINE INT_A( TC ,& ! 真实时刻 // 输入参数
|
|
N ,& ! 入河流量变化过程时段数
|
|
F ,& ! 入河流量变化过程线
|
|
FC ) ! 当前时刻入河流量大小 // 输出参数
|
|
|
|
IMPLICIT NONE
|
|
|
|
! 输入参数
|
|
REAL::TC
|
|
INTEGER::N
|
|
REAL::F(N)
|
|
|
|
! 输出参数
|
|
REAL::FC
|
|
|
|
! 中间参数
|
|
INTEGER::I
|
|
REAL::T
|
|
REAL::T1
|
|
REAL::T2
|
|
|
|
! 当前时间刚好和入河流量过程时刻值相同
|
|
DO I=1,N
|
|
T=1.0*FLOAT(I-1)
|
|
IF(TC.EQ.T)THEN
|
|
FC=F(I)
|
|
END IF
|
|
END DO
|
|
|
|
! 当前时间和入河流量过程时刻值不同,做线性插值
|
|
DO I=1,N-1
|
|
T1=1.0*FLOAT(I-1)
|
|
T2=1.0*FLOAT(I)
|
|
IF(TC.GT.T1.AND.TC.LT.T2)THEN
|
|
FC=F(I)+(TC-T1)*(F(I+1)-F(I))/(T2-T1)
|
|
EXIT
|
|
END IF
|
|
END DO
|
|
|
|
END SUBROUTINE INT_A
|