제4장 수문통계



   확률년별 수문량 빈도분석을 (1) 정규분포(normal), (2)Slade형 분포(Slade), (3) log Pearson type III 분포, (4) 극치 type 
I 분포(extremmal type I)에 의하여 foortran으로 프로그램화한 것을 소개하면 다음과 같다.



	real lxb(300),lxsb(300),lxs2b(300),isum,lxs3b(200)
	dimension  xb(300),xsb(300),xs2b(300),xs3b(300)
	character aa, push
	do 250 mk=1,24
 250	write(*,*)
	write(*,*) '          this is programed by Prof. SUNG KI SUK'
	write(*,*)
	write(*,*)
	write(*,*) '            you must apply this program very well'
	write(*,*)
	write(*,*)
	write(*,*)'            key in c to start'
	read(*,100) push

	do 251 mk=1,24
 251	write(*,*)
	write(*,*) '          key in the NUMBER of input data'
	do 150 mk=1,10
 150	write(*,*)

	read(*,*)i
	do 1 j=1,i+1
	xb(j)=0.0
	xsb(j)=0.0
	xs2b(j)=0.0
	xs3b(j) = 0.0
	lxb(j) = 0.0
	lxsb(j)=0.0
	lxs2b(j)=0.0
 1	continue
	j=1
	isum=0.0
	write(*,*)'    which do you want between FILE or KEY IN( ? f/k)'
	do 155 mk=1,10
 155	write(*,*)

	read(*,100) aa
 100	format(a1)
	do 253 mk=1,24
 253	write(*,*)

	if(aa.eq.'f') then
	open(1,FILE='sung.dat',STATUS='OLD')
 2	read(1,50,end=51) xb(j)
	isum=isum + xb(j)
	j=j+1
	goto 2
 51	close(1)

	else
	write(*,*)
	do 110 j = 1, i
	write(*,105)j
 105	format(20x,'X(',i3,') =')
	read(*,*) xb(j)
 110	continue
	endif

	 x0 =  isum/i
	 sxs2b=0.0
	 sxs3b=0.0
	 slxb=0.0
	 slxs2b=0.0
	 slxs3b=0.0
	 do 4 j=1, i
	 xsb(j) = xb(j) - x0
	 xs2b(j) = xsb(j) ** 2
	 sxs2b = sxs2b + xs2b(j)
	 xs3b(j) = xsb(j) ** 3
	 sxs3b = sxs3b + xs3b(j)
	 lxb(j) = log10 (xb(j))
 4	   slxb = slxb + lxb(j)
	  aslxb = slxb/i
	  do 444 j = 1, i

	  lxsb(j) = lxb(j) - aslxb
	  lxs2b(j) = lxsb(j) ** 2
	 slxs2b = slxs2b + lxs2b(j)
	 lxs3b(j) = lxsb(j) ** 3
	 slxs3b = slxs3b + lxs3b(j)
 444	   continue
	open(4,FILE='sung.out',STATUS='NEW')
	 write(*,*)
	 s = sqrt (sxs2b/(i-1))
	  y0 = aslxb

	 sy = sqrt(slxs2b/(i-1))
	   a = (i * slxs3b)/((i-1)*(i-2))

	 cs = a/(sy **3)
	 write(*,300)
	 write(4,*) '          this is programed by Prof. SUNG KI SUK'
	 write(4,*)
	 write(4,*)


	 write(4,300)
 300	format(3x,'M',5x,'X',3x,'   (x-x0)  (x-x0)**2',
     1 ' y=log(x)   y - y0 (y - y0)**2 (y - y0)**3')
	 do 5  j = 1,i
      write(*,7)j,xb(j),xsb(j),xs2b(j),lxb(j),lxsb(j),lxs2b(j),lxs3b(j)
       pp = j/15.0
       kp = pp
       kpp = kp * 15
      if(j.eq.kpp) then
	write(*,*)
	write(*,*) '              key in   c   to continue'
	read(*,100) push
	do 255 mk=1,24
 255	write(*,*)

	else
	 continue
	endif
      write(4,7)j,xb(j),xsb(j),xs2b(j),lxb(j),lxsb(j),lxs2b(j),lxs3b(j)
 5	 continue
	 write(*,8) isum,sxs2b,slxb,slxs2b,slxs3b
	 write(4,8) isum,sxs2b,slxb,slxs2b,slxs3b
	 write(*,9) x0,y0
	 write(4,9) x0,y0
	write(*,*)
	write(*,*) '              key in   c   to continue'
	read(*,100) push

	write(*,*)

	write(*,*)
	 write(*,920) x0,s,y0,sy,a,cs
	 write(4,920) x0,s,y0,sy,a,cs
920	format(/,t8,'1  x0(arithmetical average of variable x) = ',f8.2
     - ,/,t8,'2  s(standard deviation of variable x) = ',f8.2 ,/,t8,
     - '3  y0(arithmetical average of y, y=logx) = ',f8.4, /,t8,
     - '4  sy(standard deviation of y) = ',f8.4, /,t8,
     - '5  a(skewness) = ',f10.4,/,t8,
     - '6  cs(coefficient of skewness) = ',f7.4)

	do 256 mk=1,10
 256	write(*,*)
	write(*,*) '              key in   c   to continue'
	read(*,100) push



	 write(4,*)
	 write(4,*)

	 write(*,*) '           I.   NORMAL DISTRIBUTION'
	 write(*,*)
	 write(*,200)
 200   format(10x,'key in the RETURN PERIOD T which you want to expect')
	do 160 mk=1,10
 160	write(*,*)


	 read(*,*) j
	 write(*,11)j
 11	 format(/,15x,' key in random variable Z when T = ',i3,' year' )
	do 165 mk=1,10
 165	write(*,*)


	 read(*,*) z
	 x = x0 + (z * s)
	 write(*,15) j,z,x0,z,s,x
	  write(4,15) j,z,x0,z,s,x
 15	 format(23x,' I. NORMAL DISTRIBUTION',//,21x,' T = '
     3	 ,i3,' YEARS',  5x,' Z = ',f7.4,//,6x,'X = X0 + Z * S = ',
     4	 f6.2,' + ',f6.4,' * ',f6.2,' = ',f8.2)
	do 168 mk=1,13
 168	write(*,*)
	write(*,*) '              key in   c   to continue  '
	 read(*,100) push
	do 270 mk=1,24
 270	write(*,*)

	 write(4,*)
	 write(4,*)

	 write(*,*) '           II.  SLADE  DISTRIBUTION'
	 write(*,18)j
 18	 format(/,10x, ' key in frequency factor XI when T = ',i3,' year')
	do 170 mk=1,10
 170	write(*,*)


	 read(*,*) eta
	 y = y0 + (eta * sy)
	 x = 10 ** y
	 write(*,20) j,eta,y0,eta,sy,y,y,x
	 write(4,20) j,eta,y0,eta,sy,y,y,x
 20	 format(13x, 'II.  SLADE  DISTRIBUTION',//,10x,' T = '
     3	 ,i3,' YEARS',  5x,' XI = ',f7.4,//,6x,'Y = Y0 + XI * SY = ',
     4	f7.4,' + ',f7.4,' * ',f7.4,' = ',f7.4,//,9x,'X = 10 ** Y = 10 **
     6',F7.4,' = ',F7.2)
	do 173 mk=1,10
 173	write(*,*)
	write(*,*) '              key in   c   to continue  '
	 read(*,100) push
	do 272 mk=1,24
 272	write(*,*)

	 write(4,*)
	 write(4,*)
      write(*,*)'           III.  LOG PEARSON TYPE III  DISTRIBUTION'
	 write(*,23)j
 23	format(/,13x, ' key in frequency factor K when  T = ',i3,' year')
	do 175 mk=1,10
 175	write(*,*)

	 read(*,*) eta
	 y = y0 + (eta * sy)
	 x = 10 ** y
	 write(*,30) j,eta,y0,eta,sy,y,y,x
	 write(4,30) j,eta,y0,eta,sy,y,y,x
 30	 format(17x, 'III.  LOG PEARSON TYPE III  DISTRIBUTION'
     1	,//,21x,' T = '
     3	 ,i3,' YEARS',  5x,' K = ',f7.4,//,6x,'Y = Y0 + K * SY = ',
     4	f7.4,' + ',f7.4,' * ',f7.4,' = ',f7.4,//,15x,' X = 10 ** Y = 10
     6**',F7.4,' = ',F7.2)
	do 178 mk=1,10
 178	write(*,*)
	 write(*,*) '              key in   c   to continue  '
	 read(*,100) push
	do 275 mk=1,24
 275	write(*,*)

	 write(4,*)
	 write(4,*)
	 write(*,*)'            IIII.  EXTREMAL TYPE I   DISTRIBUTION'
	 write(*,33)j
 33	format(/,12x, ' key in frequency factor K  when T = ',i3,' year' )
	do 180 mk=1,10
 180	write(*,*)


	 read(*,*) eta
	 x = x0 + eta * s
	 write(*,40)i,j,eta,x0,eta,s,x
	 write(4,40)i,j,eta,x0,eta,s,x
 40	 format(20x, 'IIII.  EXTREMAL TYPE I   DISTRIBUTION'
     1	 ,//,18x,' N= ',i3,'  T = '
     3	 ,i3,' YEARS',  5x,' K = ',f7.4,//,13x,'X = X0 + K * S = ',
     4	 f7.2,' + ',f7.4,' * ',f7.2,' = ',f8.2)
	 close(4)

	do 182 mk=1,10
 182	write(*,*)



	 stop
 50	 format(f6.1)
 7	format(1x,i3,2x,f6.1,2x,f8.2,2x,f8.2,2x,f7.4,2x
     -	,f8.4,2x,f8.4,2x,f8.4)
 8     format(1x,'sum',f8.1,10x,f10.2,1x,f8.4,13x,f7.4,1x,f9.4)
 9	 format(1x,'avg',3x,f6.2,21x,f7.4)
	 end

   상기의 프로그램을 fortran program에서 실행 file을 만들어 다음의 예제를 갖고 빈도분석을 실행하고자 한다.

   (예제) 다음은 어느 지역의 30년간 년최대 일우량을 순위별로 나열한 값이다. 이 자료를 이용하여 (1) 정규분포, (2)Slade형 
분포, (3) log Pearson type III 분포, (4) 극치 type I 분포에 의하여 50년 확률 일우량을 구하시오.

    <년최대 일우량 자료>
     185mm     130mm     128mm      124mm      118mm       110mm       102mm     102mm      98mm     96mm      
      95mm      94mm      94mm       84mm       83mm        82mm        81mm      81mm      79mm     77mm      
      73mm      72mm      71mm       69mm       64mm        62mm        61mm      61mm      57mm     51mm
   


   첫째로, 입력자료를 fortran program에서 다음과 같이 입력하고 file명을 sung.dat로 저장한다.

185.0
130.0
128.0
124.0
118.0
110.0
102.0
102.0
98.0
96.0
95.0
94.0
94.0
84.0
83.0
82.0
81.0
81.0
79.0
77.0
73.0
72.0
71.0
69.0
64.0
62.0
61.0
61.0
57.0
51.0


   둘째로, 실행하는데 있어서 다음의 값을 미리 알아 놓아야 한다.
   1. normal distribution(정규분포)에서 변환변수 z의 값은 T=50일 때 P(X>=x)=1/50=0.02이므로 식(10.22)<환경수리수문학>에서
      0.02=1/2(1-2F(z))에서
        F(z)=0.48
      F(z)=0.48에 대한 z는 표 10.1<환경수리수문학>로부터 2.054를 얻는다.
   2. Slade distribution에서 T=50에 대한 빈도계수 XI는 표 10.2<환경수리수문학>에 의하여 XI=2.0537을 얻는다.
   3. log Pearson type III distribution에서 T=50에 대한 빈도계수를 구하기 위하여는 전산프로그램 실행중 왜곡도계수 CS=
0.5105로 계산되었으며, 이 값에 해당하는 빈도계수 K의 값은 표 10.3<환경수리수문학>에서 K=2.316을 얻는다.
   4. extremal type I distibution에서 T=50에 대한 빈도계수 K의 값은 표 10.4<환경수리수문학>에서 K=3.026을 얻는다. 


   셋째로, 다음과 같은 방법으로 실행한다. 이 때 실행은 소문자 상태에서 행한다.

C:FORTRAN>sung

     this is programed by Prof. SUNG KI SUK

       you must apply this progrm very well

       key in c to start
c

       key in the NUMBER of input data

30
   which doo you want between FILE or KEY IN( ?f/k)

f

  M     X      (x-x0)  (x-x0)**2 y=log(x)   y - y0 (y - y0)**2 (y - y0)**3
  1   185.0     95.53   9126.62   2.2672     .3335     .1112     .0371
  2   130.0     40.53   1642.95   2.1139     .1802     .0325     .0059
  3   128.0     38.53   1484.82   2.1072     .1735     .0301     .0052
  4   124.0     34.53   1192.55   2.0934     .1597     .0255     .0041
  5   118.0     28.53    814.15   2.0719     .1382     .0191     .0026
  6   110.0     20.53    421.62   2.0414     .1077     .0116     .0012
  7   102.0     12.53    157.08   2.0086     .0749     .0056     .0004
  8   102.0     12.53    157.08   2.0086     .0749     .0056     .0004
  9    98.0      8.53     72.82   1.9912     .0575     .0033     .0002
 10    96.0      6.53     42.68   1.9823     .0486     .0024     .0001
 11    95.0      5.53     30.62   1.9777     .0440     .0019     .0001
 12    94.0      4.53     20.55   1.9731     .0394     .0016     .0001
 13    94.0      4.53     20.55   1.9731     .0394     .0016     .0001
 14    84.0     -5.47     29.88   1.9243    -.0094     .0001     .0000
 15    83.0     -6.47     41.82   1.9191    -.0146     .0002     .0000
 16    82.0     -7.47     55.75   1.9138    -.0199     .0004     .0000
 17    81.0     -8.47     71.68   1.9085    -.0252     .0006     .0000
 18    81.0     -8.47     71.68   1.9085    -.0252     .0006     .0000
 19    79.0    -10.47    109.55   1.8976    -.0361     .0013     .0000
 20    77.0    -12.47    155.42   1.8865    -.0472     .0022    -.0001
 21    73.0    -16.47    271.15   1.8633    -.0704     .0050    -.0003
 22    72.0    -17.47    305.08   1.8573    -.0764     .0058    -.0004
 23    71.0    -18.47    341.02   1.8513    -.0825     .0068    -.0006
 24    69.0    -20.47    418.88   1.8388    -.0949     .0090    -.0009
 25    64.0    -25.47    648.55   1.8062    -.1275     .0163    -.0021
 26    62.0    -27.47    754.42   1.7924    -.1413     .0200    -.0028
 27    61.0    -28.47    810.35   1.7853    -.1484     .0220    -.0033
 28    61.0    -28.47    810.35   1.7853    -.1484     .0220    -.0033
 29    57.0    -32.47   1054.08   1.7559    -.1778     .0316    -.0056
 30    51.0    -38.47   1479.68   1.7076    -.2261     .0511    -.0116
  
              key in  c  to continue
c

sum  2684.0            22613.46  58.0114               .4470     .0264
avg    89.47                      1.9337
 
               key in  c  to continue
c

       1  x0(arithmetical average of variable x) =    89.47
       2  s(standard deviation of variable x) =    27.92
       3  y0(arithmetical average of y, y=logx) =   1.9337
       4  sy(standard deviation of y) =    .1242
       5  a(skewness) =      .0010
       6  cs(coefficient of skewness) =   .5105  

               key in  c  to continue
c
             I.  NORMAL DISTRIBUTION

          key in the RETERN PERIOD T which you want to expect

50

                key in random variable Z when T = 50 year

2.054                   
 
                        I. NORMAL DISTRIBUTION
 
                      T =  50 YEARS      Z =  2.0540
 
      X = X0 + Z * S =  89.47 + 2.0540 *  27.92 =   146.82
 
               key in  c  to continue
c

                 II. SLADE  DISTRIBUTION

               key in frequency facter XI when T =  50 year 

2.0537
                  
             II.  SLADE  DISTRIBUTION
 
           T =  50 YEARS      XI =  2.0537
 
      Y = Y0 + XI * SY =  1.9337 +  2.0537 *   .1242 =  2.1887
 
         X = 10 ** Y = 10 **  2.1887 =  154.42

               key in  c  to continue
c

      III. LOG PEARSON TYPE III  DISTRIBUTION

         key in frequency facter K when T =  50 year

2.316
 
                 III.  LOG PEARSON TYPE III  DISTRIBUTION
 
                      T =  50 YEARS      K =  2.3160
 
      Y = Y0 + K * SY =  1.9337 +  2.3160 *   .1242 =  2.2213
 
                X = 10 ** Y = 10  ** 2.2213 =  166.44
 
               key in  c  to continue
c
 
              IIII. EXTREMAL TYPE I   DISTRIBUTION

              key in frequency facter K when T =  50 year 

3.026 

                    IIII.  EXTREMAL TYPE I   DISTRIBUTION
 
                   N=  30  T =  50 YEARS      K =  3.0260
 
             X = X0 + K * S =   89.47 +  3.0260 *   27.92 =   173.97
  

 Stop - Program terminated.
                   

   실행시킨 결과는 다음과 같다.

C:\FORTRAN>copy sung.out prn

           this is programed by Prof. SUNG KI SUK
 
 
   M     X      (x-x0)  (x-x0)**2 y=log(x)   y - y0 (y - y0)**2 (y - y0)**3
   1   185.0     95.53   9126.62   2.2672     .3335     .1112     .0371
   2   130.0     40.53   1642.95   2.1139     .1802     .0325     .0059
   3   128.0     38.53   1484.82   2.1072     .1735     .0301     .0052
   4   124.0     34.53   1192.55   2.0934     .1597     .0255     .0041
   5   118.0     28.53    814.15   2.0719     .1382     .0191     .0026
   6   110.0     20.53    421.62   2.0414     .1077     .0116     .0012
   7   102.0     12.53    157.08   2.0086     .0749     .0056     .0004
   8   102.0     12.53    157.08   2.0086     .0749     .0056     .0004
   9    98.0      8.53     72.82   1.9912     .0575     .0033     .0002
  10    96.0      6.53     42.68   1.9823     .0486     .0024     .0001
  11    95.0      5.53     30.62   1.9777     .0440     .0019     .0001
  12    94.0      4.53     20.55   1.9731     .0394     .0016     .0001
  13    94.0      4.53     20.55   1.9731     .0394     .0016     .0001
  14    84.0     -5.47     29.88   1.9243    -.0094     .0001     .0000
  15    83.0     -6.47     41.82   1.9191    -.0146     .0002     .0000
  16    82.0     -7.47     55.75   1.9138    -.0199     .0004     .0000
  17    81.0     -8.47     71.68   1.9085    -.0252     .0006     .0000
  18    81.0     -8.47     71.68   1.9085    -.0252     .0006     .0000
  19    79.0    -10.47    109.55   1.8976    -.0361     .0013     .0000
  20    77.0    -12.47    155.42   1.8865    -.0472     .0022    -.0001
  21    73.0    -16.47    271.15   1.8633    -.0704     .0050    -.0003
  22    72.0    -17.47    305.08   1.8573    -.0764     .0058    -.0004
  23    71.0    -18.47    341.02   1.8513    -.0825     .0068    -.0006
  24    69.0    -20.47    418.88   1.8388    -.0949     .0090    -.0009
  25    64.0    -25.47    648.55   1.8062    -.1275     .0163    -.0021
  26    62.0    -27.47    754.42   1.7924    -.1413     .0200    -.0028
  27    61.0    -28.47    810.35   1.7853    -.1484     .0220    -.0033
  28    61.0    -28.47    810.35   1.7853    -.1484     .0220    -.0033
  29    57.0    -32.47   1054.08   1.7559    -.1778     .0316    -.0056
  30    51.0    -38.47   1479.68   1.7076    -.2261     .0511    -.0116
 sum  2684.0            22613.46  58.0114               .4470     .0264
 avg    89.47                      1.9337
 
       1  x0(arithmetical average of variable x) =    89.47
       2  s(standard deviation of variable x) =    27.92
       3  y0(arithmetical average of y, y=logx) =   1.9337
       4  sy(standard deviation of y) =    .1242
       5  a(skewness) =      .0010
       6  cs(coefficient of skewness) =   .5105
 
 
                        I. NORMAL DISTRIBUTION
 
                      T =  50 YEARS      Z =  2.0540
 
      X = X0 + Z * S =  89.47 + 2.0540 *  27.92 =   146.82
 
 
             II.  SLADE  DISTRIBUTION
 
           T =  50 YEARS      XI =  2.0537
 
      Y = Y0 + XI * SY =  1.9337 +  2.0537 *   .1242 =  2.1887
 
         X = 10 ** Y = 10 **  2.1887 =  154.42
 
 
                 III.  LOG PEARSON TYPE III  DISTRIBUTION
 
                      T =  50 YEARS      K =  2.3160
 
      Y = Y0 + K * SY =  1.9337 +  2.3160 *   .1242 =  2.2213
 
                X = 10 ** Y = 10  ** 2.2213 =  166.44
 
 
                    IIII.  EXTREMAL TYPE I   DISTRIBUTION
 
                   N=  30  T =  50 YEARS      K =  3.0260
 
             X = X0 + K * S =   89.47 +  3.0260 *   27.92 =   173.97