MASIJINGGEN/Fortran/MASIJINGGEN.f90

50 lines
1.9 KiB
Fortran

subroutine MASIJINGGEN( NFILENAME ,& ! 文件名字长度 整数 //输入参数
N ,& ! 入流流量数据点个数 整数 //输入参数
Q1 ,& ! 入流流量 浮点数 //输入参数
Q20 ,& ! 出流流量初始值 浮点数 //输入
X ,& ! 流量比重因子 浮点数 //输入参数
K ,& ! 流量模数 浮点数 //输入参数
DETAT ,& ! 时间步长 (小时) 浮点数 //输入参数
C0 ,& ! 系数 浮点数 //输出参数
C1 ,& ! 浮点数 //输出参数
C2 ,& ! 浮点数 //输出参数
Q2 )& ! 出流流量 浮点数 //输出
BIND(C, NAME="MASIJINGGEN")
!DEC$ ATTRIBUTES DLLEXPORT::MASIJINGGEN
INTEGER::NFILENAME
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 MASIJINGGEN