2025-05-09 14:01:19 +08:00
|
|
|
! Mc_method.f90
|
|
|
|
!
|
|
|
|
! FUNCTIONS:
|
|
|
|
! Mc_method - Entry point of console application.
|
|
|
|
!
|
|
|
|
|
|
|
|
!****************************************************************************
|
|
|
|
!
|
|
|
|
! PROGRAM: Mc_method
|
|
|
|
!
|
|
|
|
! PURPOSE: Entry point for the console application.
|
|
|
|
!
|
|
|
|
!****************************************************************************
|
2025-05-12 16:20:36 +08:00
|
|
|
SUBROUTINE Mc_method( NFILENAME ,& ! 文件名字长度 整数 //输入参数
|
|
|
|
N ,& ! 入流流量数据点个数 整数 //输入参数
|
|
|
|
Q1 ,& ! 入流流量 浮点数 //输入参数
|
|
|
|
Q20 ,& ! 出流流量初始值 浮点数 //输入
|
|
|
|
X ,& ! 流量比重因子 浮点数 //输入参数
|
|
|
|
K ,& ! 流量模数 浮点数 //输入参数
|
|
|
|
DETAT ,& ! 时间步长 (小时) 浮点数 //输入参数
|
|
|
|
C0 ,& ! 系数 浮点数 //输出参数
|
|
|
|
C1 ,& ! 浮点数 //输出参数
|
|
|
|
C2 ,& ! 浮点数 //输出参数
|
|
|
|
Q2 ) ! 出流流量 浮点数 //输出
|
2025-05-09 14:01:19 +08:00
|
|
|
|
|
|
|
INTEGER::NFILENAME
|
|
|
|
CHARACTER(LEN = NFILENAME)::FILENAME
|
|
|
|
|
|
|
|
INTEGER::N
|
|
|
|
REAL::Q1(1000)
|
|
|
|
REAL::Q20
|
|
|
|
REAL::Q2(1000)
|
|
|
|
REAL::I1
|
|
|
|
REAL::I2
|
|
|
|
REAL::C0
|
|
|
|
REAL::C1
|
|
|
|
REAL::C2
|
|
|
|
|
|
|
|
REAL::X
|
|
|
|
REAL::K
|
|
|
|
REAL::DETAT
|
|
|
|
|
|
|
|
INTEGER::I
|
|
|
|
|
|
|
|
C0 = (0.5*DETAT - K*X)/(0.5*DETAT + K - K*X)
|
|
|
|
C1 = (0.5*DETAT + K*X)/(0.5*DETAT + K - K*X)
|
|
|
|
C2 = (-0.5*DETAT +K - K*X)/(0.5*DETAT + K - K*X)
|
|
|
|
|
|
|
|
Q2(1) =Q20
|
|
|
|
|
|
|
|
DO I = 2,N
|
|
|
|
|
|
|
|
I2 = Q1(I)
|
|
|
|
|
|
|
|
I1 = Q1(I-1)
|
|
|
|
|
|
|
|
Q2(I) = C0*I2 + C1*I1 + C2*Q2(I-1)
|
|
|
|
|
|
|
|
END DO
|
|
|
|
|
|
|
|
|
|
|
|
END SUBROUTINE Mc_method
|
|
|
|
|