diff --git a/Fortran/SUB_SHUILIANGJISUAN.f90 b/Fortran/SUB_SHUILIANGJISUAN.f90 index 5e64f72..29ce832 100644 --- a/Fortran/SUB_SHUILIANGJISUAN.f90 +++ b/Fortran/SUB_SHUILIANGJISUAN.f90 @@ -3,21 +3,21 @@ ! FUNCTIONS/SUBROUTINES exported from SUB_SHUILIANGJISUAN.dll: ! SUB_SHUILIANGJISUAN - subroutine ! -subroutine SUB_SHUILIANGJISUAN( NDATA ,& ! 计算时刻数 // 输入参数 - LONG ,& ! 河道长度 - INbd ,& ! 断面底宽 - INzd ,& ! 底高程 - INsm ,& ! 边坡系数 - INrough ,& ! 糙率 - ZZ0 ,& ! 计算区域初始水位 - DB ,& ! 下游边界条件类型 1.水位边界 2.流量边界 - UQ ,& ! 上游流量过程 - DQH ,& ! 上游水位/流量过程 - dt ,& ! 计算步长( 秒) - OUTT ,& ! 计算断面输出时刻 - OUTQ ,& ! 计算断面输出流量 - OUTH ) ! 计算断面输出水位 - +subroutine SUB_SHUILIANGJISUAN( NDATA ,& ! 璁$畻鏃跺埢鏁 // 杈撳叆鍙傛暟 + LONG ,& ! 娌抽亾闀垮害 + INbd ,& ! 鏂潰搴曞 + INzd ,& ! 搴曢珮绋 + INsm ,& ! 杈瑰潯绯绘暟 + INrough ,& ! 绯欑巼 + ZZ0 ,& ! 璁$畻鍖哄煙鍒濆姘翠綅 + DB ,& ! 涓嬫父杈圭晫鏉′欢绫诲瀷 1.姘翠綅杈圭晫 2.娴侀噺杈圭晫 + UQ ,& ! 涓婃父娴侀噺杩囩▼ + DQH ,& ! 涓婃父姘翠綅/娴侀噺杩囩▼ + dt ,& ! 璁$畻姝ラ暱锛 绉掞級 + OUTT ,& ! 璁$畻鏂潰杈撳嚭鏃跺埢 + OUTQ ,& ! 璁$畻鏂潰杈撳嚭娴侀噺 + OUTH )& ! 璁$畻鏂潰杈撳嚭姘翠綅 + BIND(C, NAME="SUB_SHUILIANGJISUAN") ! Expose subroutine SUB_SHUILIANGJISUAN to users of this DLL ! !DEC$ ATTRIBUTES DLLEXPORT::SUB_SHUILIANGJISUAN @@ -43,11 +43,11 @@ INTEGER::FHD REAL::OUTH(1000) REAL::OUTT(1000) - REAL::DDGC ! 计算断面堤顶高程 + REAL::DDGC ! 璁$畻鏂潰鍫ら《楂樼▼ REAL::MAXH - INTEGER::MY ! 1.漫溢 2.未漫溢 + INTEGER::MY ! 1.婕孩 2.鏈极婧 integer River,tstep ! node @@ -84,44 +84,48 @@ INTEGER::FHD INTEGER::TEMP !OPEN(1,FILE='OUTFHDL.TXT') - !WRITE(1,*)' ! 计算时刻数 ', NDATA ,& - ! ' ! 河道长度 ', LONG ,& - ! '! 断面底宽 ', INbd ,& - ! '! 底高程 ' , INzd ,& - ! '! 边坡系数 ', INsm ,& - ! ' ! 糙率 ' , INrough ,& - ! ' ! 计算区域初始水位 ', ZZ0 ,& - ! ' ! 下游边界条件类型 1.水位边界 2.流量边界 ', DB ,& - ! ' ! 上游流量过程 ' , UQ ,& - ! ' ! 上游水位/流量过程 ', DQH ,& - ! ' ! 计算步长( 秒) ', dt ,& - ! '! 计算断面堤顶高程 ', DDGC + !WRITE(1,*)' ! 璁$畻鏃跺埢鏁 ', NDATA ,& + ! ' ! 娌抽亾闀垮害 ', LONG ,& + ! '! 鏂潰搴曞 ', INbd ,& + ! '! 搴曢珮绋 ' , INzd ,& + ! '! 杈瑰潯绯绘暟 ', INsm ,& + ! ' ! 绯欑巼 ' , INrough ,& + ! ' ! 璁$畻鍖哄煙鍒濆姘翠綅 ', ZZ0 ,& + ! ' ! 涓嬫父杈圭晫鏉′欢绫诲瀷 1.姘翠綅杈圭晫 2.娴侀噺杈圭晫 ', DB ,& + ! ' ! 涓婃父娴侀噺杩囩▼ ' , UQ ,& + ! ' ! 涓婃父姘翠綅/娴侀噺杩囩▼ ', DQH ,& + ! ' ! 璁$畻姝ラ暱锛 绉掞級 ', dt ,& + ! '! 璁$畻鏂潰鍫ら《楂樼▼ ', DDGC FHD = 0 TEMP = 0 - ! 1.读入河道组态数据 - !open(1,file='河道组态数据.TXT') + ! 1.璇诲叆娌抽亾缁勬佹暟鎹 + !open(1,file='娌抽亾缁勬佹暟鎹.TXT') - ! 读入:1.河道数量 2.河道计算断面数最大值 3.河道汊点数最大值 4.计算时刻数 + ! 璇诲叆锛1.娌抽亾鏁伴噺 2.娌抽亾璁$畻鏂潰鏁版渶澶у 3.娌抽亾姹婄偣鏁版渶澶у 4.璁$畻鏃跺埢鏁 !CALL SUB_GETNXT(1) !read(1,*) nriver = 1 nsect = 6 krc = 0 - mriver=nsect - 1 ! 这是我写的,微段数不就等于断面数-1吗 + mriver=nsect - 1 ! 杩欐槸鎴戝啓鐨勶紝寰鏁颁笉灏辩瓑浜庢柇闈㈡暟-1鍚 ALLOCATE(Ns(nriver),Pc(nriver),Nrc(krc,nriver),Lc(krc,nriver)) ALLOCATE(Dric(krc,nriver),Qj(ndata,krc,nriver),Asave(krc,nriver)) - ALLOCATE(ds(mriver,nriver),bd(nsect,nriver),zd(nsect,nriver),sm(nsect,nriver), rough(nsect,nriver)) - ALLOCATE(UB1(nriver),UB2(nriver),DB1(nriver),DB2(nriver),NUB(2,nriver),NDB(2,nriver)) - ALLOCATE(UBV(ndata,nriver),Aphi(2,nriver),DBV(ndata,nriver),Gate(4,nriver)) - ALLOCATE(Z0(nsect,nriver),Q0(nsect,nriver),Z(nsect,nriver),Q(nsect,nriver),V(nsect,nriver)) + ALLOCATE(ds(mriver,nriver),bd(nsect,nriver),zd(nsect,nriver),& + sm(nsect,nriver), rough(nsect,nriver)) + ALLOCATE(UB1(nriver),UB2(nriver),DB1(nriver),DB2(nriver),& + NUB(2,nriver),NDB(2,nriver)) + ALLOCATE(UBV(ndata,nriver),Aphi(2,nriver),DBV(ndata,nriver),& + Gate(4,nriver)) + ALLOCATE(Z0(nsect,nriver),Q0(nsect,nriver),Z(nsect,nriver),& + Q(nsect,nriver),V(nsect,nriver)) ALLOCATE(Qp(ndata)) ALLOCATE(Zc(nsect,nriver),Qc(nsect,nriver)) - !读入: 1.河道序号 2.河道断面数 3.河道汊点数 - ! (所有汊点均变成三汊口处理) + !璇诲叆锛 1.娌抽亾搴忓彿 2.娌抽亾鏂潰鏁 3.娌抽亾姹婄偣鏁 + ! 锛堟墍鏈夋眾鐐瑰潎鍙樻垚涓夋眾鍙e鐞嗭級 ! CALL SUB_GETNXT(1) ! DO I = 1,nriver !read(1,*)II,Ns(i),Pc(i) @@ -129,9 +133,9 @@ INTEGER::FHD Ns(1) = 6 Pc(1) = 0 - !读入:! 1.河道序号 2.河道汊点微段号 3.汊点类型 4.流动方向 - ! 汊点类型:1——普通汊点,2——集中入流,3——调蓄水库 - ! 与汊点相连的河道或集中入流的水流方向,流入汊点:1,流出汊点:-1,调蓄水库任意给定 + !璇诲叆锛! 1.娌抽亾搴忓彿 2.娌抽亾姹婄偣寰鍙 3.姹婄偣绫诲瀷 4.娴佸姩鏂瑰悜 + ! 姹婄偣绫诲瀷锛1鈥斺旀櫘閫氭眾鐐癸紝2鈥斺旈泦涓叆娴侊紝3鈥斺旇皟钃勬按搴 + ! 涓庢眾鐐圭浉杩炵殑娌抽亾鎴栭泦涓叆娴佺殑姘存祦鏂瑰悜锛屾祦鍏ユ眾鐐癸細1锛屾祦鍑烘眾鐐癸細-1锛岃皟钃勬按搴撲换鎰忕粰瀹 Nrc = 0 Lc = 0 Dric = 0 @@ -142,7 +146,7 @@ INTEGER::FHD ! END DO ! END DO - ! 集中入流的汊点读入流量过程 + ! 闆嗕腑鍏ユ祦鐨勬眾鐐硅鍏ユ祦閲忚繃绋 Qj = 0.0 !DO k=1,nriver ! DO j=1,Pc(k) @@ -153,7 +157,7 @@ INTEGER::FHD ! END DO ! END DO - ! 连接调蓄水库的汊点读入水库面积(m2) + ! 杩炴帴璋冭搫姘村簱鐨勬眾鐐硅鍏ユ按搴撻潰绉紙m2锛 Asave = 0.0 !DO k=1,nriver ! DO j=1,Pc(k) @@ -164,12 +168,12 @@ INTEGER::FHD ! END DO ! END DO - ! 2.读入河道几何数据 + ! 2.璇诲叆娌抽亾鍑犱綍鏁版嵁 ! CALL SUB_GETNXT(1) ! ds = 0.0 ! DO J = 1,nriver ! DO I = 1,Ns(j)-1 - !read(1,*)II,II,ds(i,j) ! 每条河道各微段的长度,普通汊点、集中入流微段及调蓄水库的长度取0,每条河道的首末微段长度必须取一个非零值。 + !read(1,*)II,II,ds(i,j) ! 姣忔潯娌抽亾鍚勫井娈电殑闀垮害锛屾櫘閫氭眾鐐广侀泦涓叆娴佸井娈靛強璋冭搫姘村簱鐨勯暱搴﹀彇0锛屾瘡鏉℃渤閬撶殑棣栨湯寰闀垮害蹇呴』鍙栦竴涓潪闆跺笺 ! END DO ! END DO @@ -182,7 +186,7 @@ INTEGER::FHD ! rough = 0.0 ! DO j=1,nriver ! DO I =1,Ns(j) - !read(1,*)II,II,bd(i,j),zd(i,j),sm(i,j),rough(i,j) ! 梯形断面底宽、底高程、边坡系数、糙率 + !read(1,*)II,II,bd(i,j),zd(i,j),sm(i,j),rough(i,j) ! 姊舰鏂潰搴曞銆佸簳楂樼▼銆佽竟鍧$郴鏁般佺硻鐜 ! END DO ! END DO @@ -191,31 +195,31 @@ INTEGER::FHD sm = INsm rough = INrough - ! 3.读入河道边界数据 + ! 3.璇诲叆娌抽亾杈圭晫鏁版嵁 ! CALL SUB_GETNXT(1) -! read(1,*)ZZ0,Zctr ! ZZ0——计算区域初始水位,Zctr——河道末端挡潮闸运行控制水位, +! read(1,*)ZZ0,Zctr ! ZZ0鈥斺旇绠楀尯鍩熷垵濮嬫按浣,Zctr鈥斺旀渤閬撴湯绔尅娼椄杩愯鎺у埗姘翠綅, Zctr = 0.0 - Scanal = 0.0 ! Scanal——河网所有河道的合计长度,用于计算旁侧入流量ql + Scanal = 0.0 ! Scanal鈥斺旀渤缃戞墍鏈夋渤閬撶殑鍚堣闀垮害锛岀敤浜庤绠楁梺渚у叆娴侀噺ql DO J = 1,nriver DO I = 1,Ns(j)-1 - Scanal = Scanal + ds(i,j) ! 每条河道各微段的长度,普通汊点、集中入流微段及调蓄水库的长度取0,每条河道的首末微段长度必须取一个非零值。 + Scanal = Scanal + ds(i,j) ! 姣忔潯娌抽亾鍚勫井娈电殑闀垮害锛屾櫘閫氭眾鐐广侀泦涓叆娴佸井娈靛強璋冭搫姘村簱鐨勯暱搴﹀彇0锛屾瘡鏉℃渤閬撶殑棣栨湯寰闀垮害蹇呴』鍙栦竴涓潪闆跺笺 END DO END DO !CALL SUB_GETNXT(1) !DO I = 1,ndata - ! read(1,*)II,Qp(i) ! Qp——计算区域入河流量过程 + ! read(1,*)II,Qp(i) ! Qp鈥斺旇绠楀尯鍩熷叆娌虫祦閲忚繃绋 ! END DO Qp = 0.0 - ! UB1上游边界条件类型1(1——水位边界,2——流量边界,3——水位流量关系) - ! UB2上游边界条件类型2(1——河网外边界,2——河网内边界) - ! DB1下游边界条件类型1(1——水位边界,2——流量边界,3——水位流量关系) - ! DB2下游边界条件类型2(1——河网外边界,2——河网内边界) + ! UB1涓婃父杈圭晫鏉′欢绫诲瀷1锛1鈥斺旀按浣嶈竟鐣岋紝2鈥斺旀祦閲忚竟鐣,3鈥斺旀按浣嶆祦閲忓叧绯伙級 + ! UB2涓婃父杈圭晫鏉′欢绫诲瀷2锛1鈥斺旀渤缃戝杈圭晫锛2鈥斺旀渤缃戝唴杈圭晫锛 + ! DB1涓嬫父杈圭晫鏉′欢绫诲瀷1锛1鈥斺旀按浣嶈竟鐣岋紝2鈥斺旀祦閲忚竟鐣,3鈥斺旀按浣嶆祦閲忓叧绯伙級 + ! DB2涓嬫父杈圭晫鏉′欢绫诲瀷2锛1鈥斺旀渤缃戝杈圭晫锛2鈥斺旀渤缃戝唴杈圭晫锛 !CALL SUB_GETNXT(1) ! DO I = 1,nriver ! read(1,*)II,UB1(i),UB2(i),DB1(i),DB2(i) @@ -234,10 +238,10 @@ INTEGER::FHD UBV = 0.0 NUB = 0 !DO i=1,nriver - ! if(UB2(i).eq.1)then ! 如果是上游河网外部边界 - ! read(1,*)II,II,II,(UBV(j,i),j=1,ndata) ! 读入上游外边界断面处的水位,或流量过程 - ! elseif(UB2(i).eq.2)then ! 如果是上游河网内部边界 - ! read(1,*)II,II,II,(NUB(j,i),j=1,2) ! 读入上游内边界断面所连接的河道编号、微段编号 + ! if(UB2(i).eq.1)then ! 濡傛灉鏄笂娓告渤缃戝閮ㄨ竟鐣 + ! read(1,*)II,II,II,(UBV(j,i),j=1,ndata) ! 璇诲叆涓婃父澶栬竟鐣屾柇闈㈠鐨勬按浣嶏紝鎴栨祦閲忚繃绋 + ! elseif(UB2(i).eq.2)then ! 濡傛灉鏄笂娓告渤缃戝唴閮ㄨ竟鐣 + ! read(1,*)II,II,II,(NUB(j,i),j=1,2) ! 璇诲叆涓婃父鍐呰竟鐣屾柇闈㈡墍杩炴帴鐨勬渤閬撶紪鍙枫佸井娈电紪鍙 ! endif ! END DO @@ -247,17 +251,19 @@ INTEGER::FHD !CALL SUB_GETNXT(1) !DO i=1,nriver - ! if(DB2(i).eq.1)then ! 下游外部 - ! if(DB1(i).eq.3)then ! 如果是闸下潮位过程 - ! read(1,*)II,II,II,(DBV(j,i),j=1,ndata),(Gate(j,i),j=1,4) ! 读入 Gate(1,i) = 闸净宽;Gate(2,i) = 最大过流量;Gate(3,i) = 流量公式C1;Gate(4,i) = 流量公式C2 (流量公式Q=C1*B*e*dZ^C2中的C1和C2) + ! if(DB2(i).eq.1)then ! 涓嬫父澶栭儴 + ! if(DB1(i).eq.3)then ! 濡傛灉鏄椄涓嬫疆浣嶈繃绋 + ! read(1,*)II,II,II,(DBV(j,i),j=1,ndata),& + (Gate(j,i),j=1,4) ! 璇诲叆 Gate(1,i) = 闂稿噣瀹斤紱Gate(2,i) = 鏈澶ц繃娴侀噺锛汫ate(3,i) = 娴侀噺鍏紡C1锛汫ate(4,i) = 娴侀噺鍏紡C2 锛堟祦閲忓叕寮廞=C1*B*e*dZ^C2涓殑C1鍜孋2锛 ! ELSE - ! read(1,*)II,II,II,(DBV(j,i),j=1,ndata) ! 读入下游外边界断面处的水位,或流量,或闸下潮位过程 + ! read(1,*)II,II,II,(DBV(j,i),j=1,ndata) ! 璇诲叆涓嬫父澶栬竟鐣屾柇闈㈠鐨勬按浣嶏紝鎴栨祦閲忥紝鎴栭椄涓嬫疆浣嶈繃绋 ! end if - ! elseif(DB2(i).eq.2)then ! 下游内部 + ! elseif(DB2(i).eq.2)then ! 涓嬫父鍐呴儴 ! if(DB1(i).eq.2)then - ! read(1,*)II,II,II,(NDB(j,i),j=1,2),(Aphi(j,i),j=1,2) ! 下游流量内边界(管涵)的过流断面面积、流速系数 下游内边界一般用水位,如果用流量,一般是管涵,需要提供过流面积和流速系数 + ! read(1,*)II,II,II,(NDB(j,i),j=1,2),& + (Aphi(j,i),j=1,2) ! 涓嬫父娴侀噺鍐呰竟鐣岋紙绠℃兜锛夌殑杩囨祦鏂潰闈㈢Н銆佹祦閫熺郴鏁 涓嬫父鍐呰竟鐣屼竴鑸敤姘翠綅锛屽鏋滅敤娴侀噺锛屼竴鑸槸绠℃兜锛岄渶瑕佹彁渚涜繃娴侀潰绉拰娴侀熺郴鏁 ! ELSE - ! read(1,*)II,II,II,(NDB(j,i),j=1,2) ! 读入下游内边界断面所连接的河道编号、微段编号 + ! read(1,*)II,II,II,(NDB(j,i),j=1,2) ! 璇诲叆涓嬫父鍐呰竟鐣屾柇闈㈡墍杩炴帴鐨勬渤閬撶紪鍙枫佸井娈电紪鍙 ! end if ! endif !END DO @@ -266,13 +272,13 @@ INTEGER::FHD DBV(I,1) = DQH(I) END DO - ! 4.读入河道计算条件 + ! 4.璇诲叆娌抽亾璁$畻鏉′欢 !CALL SUB_GETNXT(1) - !read(1,*)period,dt,sita ! period——计算小时数,dt——计算时间步长(秒),sita——水量隐格式权系数 + !read(1,*)period,dt,sita ! period鈥斺旇绠楀皬鏃舵暟锛宒t鈥斺旇绠楁椂闂存闀匡紙绉掞級,sita鈥斺旀按閲忛殣鏍煎紡鏉冪郴鏁 !CALL SUB_GETNXT(1) - !read(1,*)sorz,sorq,epsz,epsq ! sorz、sorq——水位、流量迭代松弛因子,epsz、epsq——水位、流量迭代控制精度 + !read(1,*)sorz,sorq,epsz,epsq ! sorz銆乻orq鈥斺旀按浣嶃佹祦閲忚凯浠f澗寮涘洜瀛,epsz銆乪psq鈥斺旀按浣嶃佹祦閲忚凯浠f帶鍒剁簿搴 !CALL SUB_GETNXT(1) - !read(1,*)Bsor1,Bsor2 ! Bsor1、Bsor2——水闸外边界、管涵内边界计算中的松弛因子 + !read(1,*)Bsor1,Bsor2 ! Bsor1銆丅sor2鈥斺旀按闂稿杈圭晫銆佺娑靛唴杈圭晫璁$畻涓殑鏉惧紱鍥犲瓙 !close(1) period =REAL( NDATA - 1 ) @@ -290,11 +296,11 @@ INTEGER::FHD Bsor2 = 0.1 - ! 计算时间步长 + ! 璁$畻鏃堕棿姝ラ暱 maxtstep=period*3600/dt - maxiter=1000 ! 仿真模拟步数 + maxiter=1000 ! 浠跨湡妯℃嫙姝ユ暟 - ! 给河道水位、流量赋初值 + ! 缁欐渤閬撴按浣嶃佹祦閲忚祴鍒濆 DO river=1,nriver DO Is=1,Ns(river) Z0(Is,river)=ZZ0 @@ -302,24 +308,24 @@ INTEGER::FHD END DO END DO - ! 流量、水位输出 - !open(1,file='河道1各断面水位变化.TXT') - !open(2,file='河道2各断面水位变化.TXT') - !open(3,file='河道3各断面水位变化.TXT') - !open(4,file='河道4各断面水位变化.TXT') + ! 娴侀噺銆佹按浣嶈緭鍑 + !open(1,file='娌抽亾1鍚勬柇闈㈡按浣嶅彉鍖.TXT') + !open(2,file='娌抽亾2鍚勬柇闈㈡按浣嶅彉鍖.TXT') + !open(3,file='娌抽亾3鍚勬柇闈㈡按浣嶅彉鍖.TXT') + !open(4,file='娌抽亾4鍚勬柇闈㈡按浣嶅彉鍖.TXT') ! - !open(11,file='河道1各断面流量变化.TXT') - !open(12,file='河道2各断面流量变化.TXT') - !open(13,file='河道3各断面流量变化.TXT') - !open(14,file='河道4各断面流量变化.TXT') + !open(11,file='娌抽亾1鍚勬柇闈㈡祦閲忓彉鍖.TXT') + !open(12,file='娌抽亾2鍚勬柇闈㈡祦閲忓彉鍖.TXT') + !open(13,file='娌抽亾3鍚勬柇闈㈡祦閲忓彉鍖.TXT') + !open(14,file='娌抽亾4鍚勬柇闈㈡祦閲忓彉鍖.TXT') ! ---------------------------------------------------------------------------------- -! 迭代求解每个时刻的水位、流量 +! 杩唬姹傝В姣忎釜鏃跺埢鐨勬按浣嶃佹祦閲 ! ---------------------------------------------------------------------------------- - DO tstep=1,maxtstep ! 步数累加器 + DO tstep=1,maxtstep ! 姝ユ暟绱姞鍣 TEMP = TEMP + 1 - ttime=dt*tstep/3600.0 ! 真实时刻 + ttime=dt*tstep/3600.0 ! 鐪熷疄鏃跺埢 ! write(*,15)ttime iter=0 @@ -330,11 +336,11 @@ INTEGER::FHD END DO END DO - ! 计算当前时刻入河流量大小 - call int_a( ttime ,& ! 真实时刻 // 输入参数 - ndata ,& ! 入河流量变化过程时段数 - Qp ,& ! 入河流量变化过程线 - fc ) ! 当前时刻入河流量大小 // 输出参数 + ! 璁$畻褰撳墠鏃跺埢鍏ユ渤娴侀噺澶у皬 + call int_a( ttime ,& ! 鐪熷疄鏃跺埢 // 杈撳叆鍙傛暟 + ndata ,& ! 鍏ユ渤娴侀噺鍙樺寲杩囩▼鏃舵鏁 + Qp ,& ! 鍏ユ渤娴侀噺鍙樺寲杩囩▼绾 + fc ) ! 褰撳墠鏃跺埢鍏ユ渤娴侀噺澶у皬 // 杈撳嚭鍙傛暟 ql=fc/Scanal @@ -348,7 +354,7 @@ INTEGER::FHD END DO DO river=1,nriver - ! 确定计算时刻河段上下游边界条件值 + ! 纭畾璁$畻鏃跺埢娌虫涓婁笅娓歌竟鐣屾潯浠跺 call sub_bound( NRIVER ,& NSECT ,& MRIVER ,& @@ -387,7 +393,7 @@ INTEGER::FHD condu ,& condd ) - ! 用四点隐格式计算未知时层水位Z和流量Q + ! 鐢ㄥ洓鐐归殣鏍煎紡璁$畻鏈煡鏃跺眰姘翠綅Z鍜屾祦閲廞 call sub_QZ( NRIVER ,& NSECT ,& MRIVER ,& @@ -461,8 +467,10 @@ INTEGER::FHD DO river=1,nriver DO Is=1,Ns(river) - Z(Is,river)=(1.0-sorz)*Zc(Is,river)+sorz*Z(Is,river) - Q(Is,river)=(1.0-sorq)*Qc(Is,river)+sorq*Q(Is,river) + Z(Is,river)=(1.0-sorz)*Zc(Is,river)+& + sorz*Z(Is,river) + Q(Is,river)=(1.0-sorq)*Qc(Is,river)+& + sorq*Q(Is,river) END DO END DO @@ -477,7 +485,7 @@ INTEGER::FHD DO river=1,nriver DO Is=1,Ns(river) - ! 计算断面几何要素 + ! 璁$畻鏂潰鍑犱綍瑕佺礌 call sub_sect(NRIVER ,& NSECT ,& MRIVER ,& @@ -499,7 +507,7 @@ INTEGER::FHD END DO END DO - ! 输出几个典型河道的水位流量变化过程 + ! 杈撳嚭鍑犱釜鍏稿瀷娌抽亾鐨勬按浣嶆祦閲忓彉鍖栬繃绋 DO jj=1,nriver !write(jj,80)ttime,(Z(ii,jj),ii=1,Ns(jj)) END DO @@ -540,8 +548,9 @@ INTEGER::FHD close(14) 15 format(55x,'time=',f10.2) -50 format(55x,'iter=',i5/1x,'maxz_r=',i5,5x,'maxz_s=',i5,5x,'dzmax=',e10.4/1x,'maxq_r=',i5,5x,'maxq_s=',i5,5x,'dqmax=',e10.4) -55 format(1x,'迭代发散') +50 format(55x,'iter=',i5/1x,'maxz_r=',i5,5x,'maxz_s=',i5,& + 5x,'dzmax=',e10.4/1x,'maxq_r=',i5,5x,'maxq_s=',i5,5x,'dqmax=',e10.4) +55 format(1x,'杩唬鍙戞暎') 80 format(1x,40f12.4) @@ -552,10 +561,10 @@ INTEGER::FHD ! MY = 0 !END IF - !WRITE(1,*)' ! 1.漫溢 0.未漫溢 ' , MY ,& - ! '! 计算断面输出时刻 ', OUTT ,& - ! '! 计算断面输出流量 ', OUTQ ,& - ! '! 计算断面输出水位 ', OUTH + !WRITE(1,*)' ! 1.婕孩 0.鏈极婧 ' , MY ,& + ! '! 璁$畻鏂潰杈撳嚭鏃跺埢 ', OUTT ,& + ! '! 璁$畻鏂潰杈撳嚭娴侀噺 ', OUTQ ,& + ! '! 璁$畻鏂潰杈撳嚭姘翠綅 ', OUTH CLOSE(1)