MAIN_UFRN/Fortran/SUB_INT_A.f90
2025-05-14 17:42:10 +08:00

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