¿åʸ³Ø¹ÖºÂ

­µ¡¥½àÀþ·ÁÃùα·¿¥â¥Ç¥ë

¡¡½àÀþ·ÁÃùα·¿¥â¥Ç¥ë¤Ïή°è¤ÎÅÚÃÏÍøÍѤÎÊѲ½¤¬Î®½Ð¤ËµÚ¤Ü¤¹±Æ¶Á¤òɾ²Á¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëή½Ð¥â¥Ç¥ë¤È¤·¤Æ³«È¯¤µ¤ì¤¿¡£ÅÔ»Ô²½¤Î¿ÊŸ¤¬Ãø¤·¤¤Î®°è¤Îή½ÐÎ̸¡Æ¤¤Ë¿¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¡£

¡ü½àÀþ·ÁÃùα·¿¥â¥Ç¥ë¤ÎÀâÌÀ
¡ü¥½¡¼¥¹¥×¥í¥°¥é¥à(fortran¸À¸ì¡Ë
¡ü·×»»·ë²Ì

¥½¡¼¥¹¥×¥í¥°¥é¥à ÀèƬ¤Ø
c       ½àÀþ·ÁÃùα·¿¥â¥Ç¥ë            
	character file*80,name*80
      dimension rA(1000),rr(1000,10),q(10),qc(1000),
     1 f1(10),rsa(10),fsa(10),p(10),ck(10),DCON(10)
     2 ,QONE(10),qt(1000,10),qo(1000)
	data f1/ 0.0,0.3,0.3,0.7,6*0.0/
	data fsa/1.0,1.0,1.0,1.0,6*0.0/
	data rsa/50.0,300.0,150.0,55.0,6*0.0/
        data dcon/1000.,500.,700.,200.,6*0.0/
c   1.¿åÅÄ¡¢2.ȪÃÏ¡¢3.RÃÏ¡¢4.»³ÃÏ
c
        open(30,file='gout.txt')       !½ÐÎÏ¥Õ¥¡¥¤¥ë̾
        fmin=60.0                      !·×»»»þ´Ö´Ö³Ö
	itot=4
        fdt=1.0
        OPEN(20,file='nn.txt')
        read(20,'(a80)') file
        open(10,file=file)
c------------------------¥Ç¡¼¥¿Æɤß------------------------
        READ(10,'(a80)') name                   !¥¿¥¤¥È¥ë
        READ(10,'(10f10.0)')   AREA,QB          !ή°èÌÌÀÑ¡¢´ðÄìήÎÌ 
c                                                AREA=3.1 Qb=0.0
        READ(10,'(10f5.0)') (p(L),L=1,itot)     !ÅÚÃÏÍøÍÑ
c   1.¿åÅÄ=0.0%  2.ȪÃÏ=26.12%  3.RÃÏ=1.93%  4.»³ÃÏ=71.94%
        read(10,'(5i5)') im,id,ixt              !³«»Ï»þ´Ö¡¢·×»»¥¹¥Æ¥Ã¥×¿ô
        read(10,'(16f5.0)') (RA(L),L=1,ixt)     !»þ´Ö±«ÎÌ
c	read(10,'(16f5.0)') (qo(L),L=1,ixt)     !´Ñ¬ήÎÌ
c----------------------------------------------------------
	SQ=0.0           
	do L=1,itot
        QONE(L)=SQ
       call RSAX(IXT,RSA(L),f1(L),FSA(L),RA,RR(1,L))   !Í­¸ú±«ÎÌ»»½Ð
       CALL CONCEN(AREA,RR(1,L),CK(L),FDT,L,DCON)      !¹¿¿åÅþã»þ´Ö»»½Ð
 	enddo
c--------------------ÅÚÃÏÍøÍÑËè¤Î´ðÄìήÎÌ------------------
	qc(1)=qb
	do L=1,itot
	qone(L)=0.0
         qt(1,L)=qb*p(L)
	enddo
c---------------------------------------------------------
	DO 3000 N=1,IXT                            !·×»»¥¹¥Æ¥Ã¥×(n)
	qc(n)=0.0
        DO 20 L=1,itot                             !ÅÚÃÏÍøÍѤ´¤È(L)	
c
        do kab=1,4                                 !£±»þ´Ö¤Ë£´²ó¡Ê£±£µÊ¬¥Ô¥Ã¥Á¡Ë
       CALL RUNOFF(CK(L),RR(N,L),Q(L),QONE(L))     !ή½Ð·×»»
	enddo
c
	qt(n,L)=QONE(L)*area*P(L)/(60.0*fmin/1000.0)  !ήÎÌÊÑ´¹¡ÊÅÚÃÏÍøÍѤ´¤È¤ÎήÎÌ¡Ë
	qc(n)=qc(n)+qt(n,L)
	QONE(L)=Q(L)
 20	continue
 3000 CONTINUE
c------------------------ output ----------------------------
	write(30,1001) 
 1001	format(' step         R         Q')
	do n=1,ixt
	write(30,1000)  n,ra(n),qc(n)
 1000	format(i5,2f10.2)
c	write(30,'(10f10.5)') (ck(l),L=1,itot)
c       do n=1,ixt
c       write(30,'(i5,12f6.1)') n,ra(n),(rr(n,l),qt(n,L),L=1,itot),qc(n)
        enddo
	pause '·×Z½ªÎ»'
      SToP
      END
c------------------------------------------------------------
      SUBROUTINE CONCEN(area,rr,ck,FDT,L,DCON)
	dimension rr(1),amax(10000),DCON(1)
       C=DCON(L)*AREA**0.22
	N50=50
      DO 10 I=1,500
      BMAX=0.0
      II=I-1
      NII=N50-II
      DO 20 J=1,NII
      A=0.0
      JII=J+II
      DO 30 JJ=J,JII
      A=A+RR(JJ)
   30 CONTINUE
      IF(A.GT.BMAX) BMAX=A
   20 CONTINUE
      AMAX(I)=BMAX/FLOAT(I)
   10 CONTINUE
      CALL KADOYA(C,AMAX,N50,TC)
      CK=0.5*TC*fdt                     !ck=KÃÍ¡¡tc=¹¿¿åÅþã»þ´Ö(hr)
      RETURN
      END
C-----------------------------------------------------------------
      SUBROUTINE KADOYA(C,A,N,Tc)       !³Ñ²°¼°¤Î¹¿¿åÅþã»þ´ÖTc¤Î»»½Ð
      DIMENSION A(1)
      DO 10 I=1,N
      RE=(C/FLOAT(I)/60.0)**2.86
      IF(RE.LT.A(I)) GO TO 1000
   10 CONTINUE
 1000 CONTINUE
      IF(I.EQ.1) Tc=C/A(1)**0.35/60.0
      IF(I.EQ.1) GO TO 2000
      AA=A(I)-A(I-1)
      BB=A(I)-AA*FLOAT(I)
      Tc=FLOAT(I-1)
      DO 20 I=1,3
      DT=0.1**I
      DO 30 J=1,10
      Tc=Tc+DT
      RE1=(C/Tc/60.0)**2.86
      RE2=AA*Tc+BB
      IF(RE1.LT.RE2) GO TO 3000
   30 CONTINUE
 3000 CONTINUE
      Tc=Tc-DT
   20 CONTINUE
 2000 CONTINUE
      RETURN
      END
C---------------------------------------------------------------------
      SUBROUTINE RUNOFF(CK,A,QTWO,QONE)  !Ϣ³¼°¤Î·×»»
      dt=1.0/4.0                         !£±»þ´Ö¤Ë£´²ó¡Ê£±£µÊ¬¥Ô¥Ã¥Á¡Ë
      AM=CK/dt+0.5
      AN=CK/dt-0.5
      QTWO=(A+AN*QONE)/AM
      QONE=QTWO
      RETURN
      END
C--------------------------------------------------------------------
	subroutine rsax(iex,rsa,f1,fsa,rr,rrr)   !Í­¸ú¹ß±«¥â¥Ç¥ë(f1-rsa-fsa)
        dimension RR(1),RRR(1)                   !RR:¹ß±«ÎÌ¡¢RRR:Í­¸ú¹ß±«ÎÌ
          RXX=0.0
        do 1000 I=1,IEX
          FRX=RR(I)
          IF(RSA.EQ.0.0) GO TO 1005
          RXX=RXX+FRX
          X1=RXX-RSA
          IF(X1.LE.0.0) GO TO 1003
          IF(X1-FRX) 1004,1005,1005
 1004 RRR(I)=X1*fsa+(FRX-X1)*f1
          go to 1000
 1005 RRR(I)=FRX*Fsa
          go to 1000
 1003 RRR(I)=FRX*F1
 1000 continue
        return
          end



·×»»·ë²Ì(gout.txt) ¤³¤Î¥Ú¡¼¥¸¤ÎÀèƬ¤Ø

HOME

 step         R         Q
    1      2.60      1.00
    2      2.90      1.31
    3      3.10      1.46
    4      3.40      1.62
    5      3.80      1.81
    6      4.10      1.98
    7      4.70      2.25
    8      5.40      2.58
    9      6.60      3.12
   10      8.50      3.97
   11     13.10      6.42
   12     50.00     28.46
   13     19.70     15.96
   14     10.30      8.90
   15      7.30      6.05
   16      6.00      4.79
   17      5.10      4.02
   18      4.40      3.45
   19      3.90      3.02
   20      3.50      2.69
   21      3.20      2.43
   22      3.00      2.25
   23      2.80      2.09
   24      2.60      1.93
   25      0.00      0.47
   26      0.00      0.20
   27      0.00      0.12
   28      0.00      0.08
   29      0.00      0.06
   30      0.00      0.04
   31      0.00      0.03
   32      0.00      0.02
   33      0.00      0.02
   34      0.00      0.01
   35      0.00      0.01
   36      0.00      0.01
   37      0.00      0.01
   38      0.00      0.00
   39      0.00      0.00
   40      0.00      0.00
   41      0.00      0.00
   42      0.00      0.00
   43      0.00      0.00
   44      0.00      0.00
   45      0.00      0.00
   46      0.00      0.00
   47      0.00      0.00
   48      0.00      0.00
¿åʸ³Ø¹ÖºÂ/½àÀþ·ÁÃùα·¿¥â¥Ç¥ë
HOME