⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subaa.f

📁 水文模型的原始代码
💻 F
字号:
      subroutine subaa(years)

!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    this subroutine writes average annual subbasin output to the output.sub file

!!    ~ ~ ~ INCOMING VARIABLES ~ ~ ~
!!    name          |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    ipdvab(:)     |none          |output variable codes for output.sub file
!!    itotb         |none          |number of output variables printed (output.sub)
!!    msubo         |none          |max number of variables in output.sub file
!!    sub_km(:)     |km^2          |area of subbasin in square kilometers
!!    sub_sw(:)     |mm H2O        |water in soil profile in subbasin
!!    subaao(1,:)   |mm H2O        |precipitation in subbasin for simulation
!!    subaao(2,:)   |mm H2O        |snow melt in subbasin for simulation
!!    subaao(3,:)   |mm H2O        |surface runoff loading in subbasin for 
!!                                 |simulation
!!    subaao(4,:)   |mm H2O        |water yield from subbasin for simulation
!!    subaao(5,:)   |mm H2O        |potential evapotranspiration in subbasin for
!!                                 |simulation
!!    subaao(6,:)   |mm H2O        |actual evapotranspiration in subbasin for
!!                                 |simulation
!!    subaao(7,:)   |metric tons/ha|sediment yield from subbasin for simulation
!!    subaao(8,:)   |kg N/ha       |organic N loading from subbasin for 
!!                                 |simulation
!!    subaao(9,:)   |kg P/ha       |organic P loading from subbasin for
!!                                 |simulation
!!    subaao(10,:)  |kg N/ha       |NO3 loading from surface runoff in subbasin
!!                                 |for simulation
!!    subaao(11,:)  |kg P/ha       |soluble P loading from subbasin for 
!!                                 |simulation
!!    subaao(12,:)  |mm H2O        |groundwater loading from subbasin for 
!!                                 |simulation
!!    subaao(13,:)  |mm H2O        |percolation out of soil profile in subbasin
!!                                 |for simulation
!!    subaao(14,:)  |kg P/ha       |loading to reach of mineral P attached to
!!                                 |sediment from subbasin for simulation
!!    subaao(18,i)  |              |groundwater***?
!!    subgis(:)     |none          |GIS code printed to output files(output.sub)
!!    subtot        |none          |number of subbasins in watershed
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ LOCAL DEFINITIONS ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    ii          |none          |counter
!!    pdvab(:)    |varies        |array to hold subbasin output values
!!    pdvb(:)     |varies        |array of user selected subbasin output
!!                               |values
!!    sb          |none          |subbasin number
!!    years       |years         |length of simulation
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ ~ ~ ~ END SPECIFICATIONS ~ ~ ~ ~ ~ ~

      use parm

      real, intent (in) :: years
      integer :: sb, ii
      real, dimension (msubo) :: pdvab, pdvb

      do sb = 1, subtot

        pdvab = 0.
        pdvb = 0.
  
        pdvab(1) = subaao(1,sb)
        pdvab(2) = subaao(2,sb)
        pdvab(3) = subaao(5,sb)
        pdvab(4) = subaao(6,sb)
        pdvab(5) = sub_sw(sb)
        pdvab(6) = subaao(13,sb)
        pdvab(7) = subaao(3,sb)
        pdvab(8) = subaao(12,sb)
        pdvab(9) = subaao(4,sb)
        pdvab(10) = subaao(7,sb)
        pdvab(11) = subaao(8,sb)
        pdvab(12) = subaao(9,sb)
        pdvab(13) = subaao(10,sb)
        pdvab(14) = subaao(11,sb)
        pdvab(15) = subaao(14,sb)
        pdvab(16) = subaao(15,sb)
        pdvab(17) = subaao(16,sb)
        pdvab(18) = subaao(17,sb)


        if (ipdvab(1) > 0) then
          do ii = 1, itotb
            pdvb(ii) = pdvab(ipdvab(ii))
          end do
          write (6,1000) sb, subgis(sb), years, sub_km(sb),             &
     &                                         (pdvb(ii), ii = 1, itotb)
        else
          write (6,1000) sb, subgis(sb), years, sub_km(sb),             &
     &                                        (pdvab(ii), ii = 1, msubo)
        end if
      end do

      return
 1000 format ('BIGSUB',i4,1x,i8,1x,f4.1,e10.5,18f10.3)
      end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -