1、FORTRAN 在罗氏法洪水计算中的应用摘要:以吉林省某流域为例,采用 FORTRAN 语言对罗氏法洪水计算进行程序化设计,并与手工试算成果进行对比分析,验证了该罗氏法洪水计算程序的正确性。与传统的手工试算方法相比,FORTRAN 程序计算更加高效、精确。 (Taking a water basin in Jilin province as an example, applying FORTRAN program in Roche Method for Flood Calculation, then making comparative analysis on the results of p
2、rogram calculation and manual calculation. Compared to traditional manual calculation method, FORTRAN program calculation method is more effective and accurate. ) 关键词:罗氏法;洪水计算;FORTRAN;程序设计 (Roche Method; Flood Calculation; FORTRAN; Program Design) 中图分类号: S611 文献标识码: A 国内小流域设计洪水计算方法主要采用水科所法12和罗斯托莫夫法3
3、5。罗氏法在我省应用较广,但其在实际工作中往往采用手工试算的方法,需进行多次试算,比较麻烦。本文采用 FORTRAN6对罗氏法洪水计算进行程序化设计,以提高运算效率。 1 基本公式 罗氏法是依据全面汇流理论推导得出,但没有考虑部分汇流的产峰情况,因而不宜用于过大的集水面积,适用于流域面积小于 200km2 的洪水计算。其洪峰流量值与洪水调查值作过验证,一般可采用此法计算。 ; ; ; 式中: 为设计流量 , m3/s; 为径流系数; 为暴雨不均匀系数; 为面积, km2; 为频率对应的雨力, mm/min; 为频率对应的 24h 雨量, mm; 为暴雨强度, mm/min; 为暴雨递减指数;
4、总为汇流历时 , s; 为河道汇流历时, s; 坡面汇流历时, s; 为土壤系数; 为坡面粗糙系数 ; 为河道长度, km; 为河道坡度, ; 为坡面长度, km; 为坡面坡度, %. 洪水计算方法不同,河长和河道坡度的计算方法也不相同。其中罗氏法的河道长度是从河源点开始计算,如果河源点不清楚,可采用量至分水岭的总长度扣除平均坡面长度作为河长。当 L500m 时,按 500m 扣除;当 L10km 时按 1km 扣除。 2 程序代码 罗氏法洪水计算程序可分为三个部分:初始数据录入;迭代计算;结果输出。 2.1 数据录入部分 新建一个文本文件,将原始数据录入文本文件,并将数据读入。具体代码如下:
5、 OPEN (5,FILE=DATA.DAT,STATUS=OLD) READ (5,*) (P(K),F(K),L(K),J(K),LS(K),JS(K),XI(K),PHI(K),H24(K),N(K),K=1,6) 2.2 迭代计算部分 迭代原理:先调整假定暴雨不均匀系数 0,使 0=;再调整假定汇流历时 T0,使 T0=T,当 T0=T 时,停止迭代。迭代计算代码如下: DO K=1,6 BETA0(K)=0.85 T0(K)=180. SP(K)=H24(K)/1440*(1-N(K) B(K)=SQRT(LS(K)/JS(K)*0.6/XI(K)/PHI(K) 100 A(K)=X
6、I(K)*F(K)*BETA0(K) C(K)=L(K)/0.222/A(K)*0.2/J(K)*(0.24+1.6*J(K) I(K)=SP(K)/T0(K)*N(K) ALPHA(K)=XI(K)*(I(K)+0.1)*0.345*T0(K)*0.15 D(K)=1/I(K)/(I(K)+0.1)*0.345/T0(K)*0.15 TR(K)=C(K)*D(K)*0.2 TS(K)=B(K)*D(K)*0.5 T(K)=TR(K)+TS(K) BETA(K)=1-0.28*(F(K)/T0(K)*0.4 IF (BETA0(K).NE.BETA(K).AND.(T(K).NE.T0(K)
7、THEN BETA0(K)=BETA(K) GOTO 100 ENDIF IF (BETA0(K).EQ.BETA(K).AND.(T(K).NE.T0(K) THEN BETA0(K)=BETA(K) T0(K)=T(K) GOTO 100 ENDIF QM(K)=16.67*BETA(K)*ALPHA(K)*I(K)*F(K) ENDDO 2.3 结果输出部分 结果分别输出频率 P,汇流历时 T 和设计流量 Qmax,具体代码如下:WRITE (*,*) (P(K),T(K),QM(K),K=1,6) 3. 算例 某流域 F=31.2km2,河道长度 L=9.3km,河道比降J=5.59,
8、l=580m,JS=13.7%,五十年一遇最大 24h 降雨量 H24, 2%=145mm;暴雨递减指数 n=0.70,土壤系数=0.28,坡面糙率系数=0.30。假设暴雨不均匀系数初始值 0=0.85,汇流历时 T0=180min。 将以上初始数据录入到文本文件,并执行程序,输出结果。程序计算和手工试算的成果对比见表 1。 表 1 程序计算和手工试算的成果对比表 由表 1 可知,程序计算和手工试算的成果非常相近,从而验证了计算程序的正确性。 4 结语 本文把 FORTRAN 编程应用在罗氏法洪水计算中,录入初始数据、执行程序后即可得到最终结果,无须手工调试,大大提高了运算效率和精度。值得注意
9、的是,本文只选取了频率 P=2%这一种情况,如果一次性录入各种频率(P=1%, 2%, 3.33%, 5%, 10%, 20%)对应的初始数据,则可一次性得出所有频率下的汇流历时和设计流量,此时更显程序计算的优越性。 参考文献 1 魏永霞,王丽学. 工程水文学M. 中国水利水电出版社,2005. 2 陈家琪,张恭肃 . 小流域暴雨洪水计算 M. 水利电力出版社,1985. 3 郭振东. 吉林省洪水计算罗氏法程序设计 J. 吉林水利,2004(8):44-45. 4 刘月英,马雪梅,李强. 小汇水面积设计洪水计算方法J. 东北水利水电,2008,26(8):39-40. 5 于洪伟,张巍巍. 当石水库小流域设计洪水计算J. 水利科技与经济,2011,17(11):48-50. 6 彭国伦. FORTRAN 95 程序设计M. 中国电力出版社,2002.