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

📄 rewind_init.f

📁 水文模型的原始代码
💻 F
字号:
      subroutine rewind_init

!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    this subroutine reinitializes values for running different scenarios
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 

      use parm

      character (len=80) :: titldum
      integer :: idum, ii

!! reset output arrays/variables
      aairr = 0.
      basminpf = 0.
      basno3f = 0.
      basorgnf = 0.
      basorgpf = 0.
      hruaao = 0.
      hrupsta = 0.
      hrupstm = 0.
      hrupsty = 0.
      hruyro = 0.
      iskip = 0
      wshd_pstdg = 0.
      rchaao = 0.
      rchyro = 0.
      resdata = 0.
      resouta = 0.
      resouty = 0.
      sbactlchlp = 0.
      sbactlchp = 0.
      sbactrolp = 0.
      sbactrop = 0.
      sbactsedlp = 0.
      sbactsedp = 0.
      sdiegrolpq = 0.
      sdiegrolps = 0.
      sdiegropq = 0.
      sdiegrops = 0.
      sno3up = 0.
      spadyev = 0.
      spadyo = 0.
      spadyrfv = 0.
      spadysp = 0.
      subaao = 0.
      subyro = 0.
      wpstaao = 0.
      wpstmono = 0.
      wpstyro = 0.
      wshd_aamon = 0.
      wshd_dnit = 0.
      wshd_fixn = 0.
      wshd_fminp = 0.
      wshd_fnh3 = 0.
      wshd_fno3 = 0.
      wshd_forgn = 0.
      wshd_forgp = 0.
      wshd_ftotn = 0.
      wshd_ftotp = 0.
      wshd_hmn = 0.
      wshd_hmp = 0.
      wshd_nitn = 0.
      wshd_nstrs = 0.
      wshd_pal = 0.
      wshd_pas = 0.
      wshd_plch = 0.
      wshd_pstrs = 0.
      wshd_pup = 0.
      wshd_raino3 = 0.
      wshd_rmn = 0.
      wshd_rmp = 0.
      wshd_rwn = 0.
      wshd_tstrs = 0.
      wshd_voln = 0.
      wshd_wstrs = 0.
      wshd_yldn = 0.
      wshd_yldp = 0.
      wshdaao = 0.
      wshdmono = 0.
      wshdyro = 0.
      wtraa = 0.
      wtryr = 0.
      fcstcnt = 0
      fcstaao = 0.

      wshd_sw = 0.
      wshd_sw = rvar_orig(1)
      wshd_pndv = 0.
      wshd_pndv = rvar_orig(2)
      wshd_resv = 0.
      wshd_resv = rvar_orig(3)
      wshd_ressed = 0.
      wshd_ressed = rvar_orig(4)

!! reset watershed variables
      iyr = 0
      iyr = ivar_orig(1)

!! summation/counter variables
      dtot = 0.0
      immo = 0
      ndmo = 0

!! weather variables
      ffcst = 0
      ifirstpcp = 1
      ifirstt = 1
      ifirsth = 1
      ifirstpet = 1
      ifirsts = 1
      ifirstw = 1
      npcp = 1
      !!weather variables changed during real time/forecast simulation
      pcpsim = 0
      pcpsim = ivar_orig(2)
      tmpsim = 0
      tmpsim = ivar_orig(3)
      rhsim = 0
      rhsim = ivar_orig(4)
      slrsim = 0
      slrsim = ivar_orig(5)
      wndsim = 0
      wndsim = ivar_orig(6)
      wgnold = 0.
      tmpmx = 0.
      tmpmx = otmpmx
      tmpmn = 0.
      tmpmn = otmpmn
      tmpstdmn = 0.
      tmpstdmn = otmpstdmn
      tmpstdmx = 0.
      tmpstdmx = otmpstdmx
      pcp_stat = 0.
      pcp_stat = opcp_stat
      pr_w = 0.
      pr_w = opr_w
      igen = 0
      igen = ogen


!! HRU variables
      snoeb = 0.
      snoeb = orig_snoeb
      sno_hru = 0.
      sno_hru = orig_snohru
      snotmp = 0.
      snotmpeb = 0.
      tmp_hi = 0.
      tmp_lo = 0.
      tmpavp = 0.

      igro = 0
      igro = orig_igro
      laiday = 0.
      laiday = orig_alai
      cht = 0.
      canstor = 0.
      pltfr_n = 0.
      pltfr_p = 0.
      plantn = 0.
      plantp = 0.
      bio_hv = 0.
      bio_aahv = 0.
      bio_ms = 0.
      bio_ms = orig_bioms
      phuacc = 0.
      phuacc = orig_phuacc
      phu_plt = 0.
      phu_plt = orig_phu
      tnylda = 0.
      tnylda = orig_tnylda
      tnyld = 0.
      yldkg = 0.
      yldn = 0.
      hvstiadj = 0.
      laimxfr = 0.
      olai = 0.
      rwt = 0.
      plt_et = 0.
      plt_pet = 0.

      icfrt = 0
      icr = 1
      iday_fert = 0
      idorm = 0
      igrz = 0
      irn = 0
      ncrops = 0
      ncut = 1
      ndcfrt = 0
      ntil = 1
      nro = 1
      ndeat = 0

      sumix = 0.
      sumix = orig_sumix

      plt_pst = 0.
      plt_pst = orig_pltpst
      sol_pst = 0.
      sol_pst = orig_solpst
      sol_no3 = 0.
      sol_no3 = orig_solno3
      sol_nh3 = 0.
      sol_orgn = 0.
      sol_orgn = orig_solorgn
      sol_orgp = 0.
      sol_orgp = orig_solorgp
      sol_solp = 0.
      sol_solp = orig_solsolp
      sol_tmp = 0.
      sol_tmp = orig_soltmp
      sol_rsd = 0.
      sol_rsd = orig_solrsd
      sol_cov = 0.
      sol_cov = orig_solcov
      sol_fon = 0.
      sol_fon = orig_solfon
      sol_fop = 0.
      sol_fop = orig_solfop
      sol_aorgn = 0.
      sol_aorgn = orig_solaorgn
      sol_actp = 0.
      sol_actp = orig_solactp
      sol_stap = 0.
      sol_stap = orig_solstap
      sol_st = 0.
      sol_st = orig_solst
      sol_sw = 0.
      sol_sw = orig_solsw
      volcr = 0.
      volcr = orig_volcr
      bss = 0.
      newrti = 0.
      pst_lag = 0.
      surf_bs = 0.
      do j = 1, nhru
        call curno(cn2(j),j)
      end do
      bactlp_plt = 0.
      bactp_plt = 0.
      bactlpq = 0.
      bactlps = 0.
      bactpq = 0.
      bactps = 0.
      wshd_pstap = 0.
      rchrg = 0.
      swtrg = 0
      cklsp = 0.
      ovrlnd = 0.
      sci = 0.
      twash = 0.
      zdb = 0.
      aird = 0.

      gw_q = 0.
      shallst = 0.
      shallst = orig_shallst
      deepst = 0.
      deepst = orig_deepst
      shallirr = 0.
      deepirr = 0.

!! HRU impoundments
      pot_vol = 0.
      pot_vol = orig_potvol
      pot_sed = 0.
      pot_sed = orig_potsed
      pot_no3 = 0.
      pot_no3 = orig_potno3
      potflwi = 0.
      potsedi = 0.
      pnd_vol = 0.
      pnd_vol = orig_pndvol
      pnd_sed = 0.
      pnd_sed = orig_pndsed
      pnd_no3 = 0.
      pnd_no3 = orig_pndno3
      pnd_solp = 0.
      pnd_solp = orig_pndsolp
      pnd_orgn = 0.
      pnd_orgn = orig_pndorgn
      pnd_orgp = 0.
      pnd_orgp = orig_pndorgp
      pnd_chla = 0.
      pnd_no3g = 0.
      pnd_no3s = 0.
      pnd_seci = 0.
      pnd_psed = 0.
      pnd_solpg = 0.
      wet_vol = 0.
      wet_vol = orig_wetvol
      wet_sed = 0.
      wet_sed = orig_wetsed
      wet_no3 = 0.
      wet_no3 = orig_wetno3
      wet_orgn = 0.
      wet_orgn = orig_wetorgn
      wet_orgp = 0.
      wet_orgp = orig_wetorgp
      wet_solp = 0.
      wet_solp = orig_wetsolp
      wet_chla = 0.
      wet_no3g = 0.
      wet_no3s = 0.
      wet_seci = 0.
      wet_psed = 0.
      wet_solpg = 0.

!! reach variables
      ch_d = 0.
      ch_d = ch_di
      do j = 1, nrch
        ch_s(2,j) = 0.
        ch_s(2,j) = ch_si(j)
        ch_w(2,j) = 0.
        ch_w(2,j) = ch_wi(j)
        call ttcoef(j)
      end do
      rchstor = 0.
      bankst = 0.
      shyd = 0.
      flwin = 0.
      flwout = 0.
      sedpst_conc = 0.
      sedpst_conc = orig_sedpstconc
      chpst_conc = 0.
      ammonian = 0.
      chlora = 0.
      disolvp = 0.
      nitraten = 0.
      nitriten = 0.
      organicn = 0.
      organicp = 0.
      sedst = 0.
      algae = 0.
      rch_cbod = 0.
      rch_dox = 0.
      varoute = 0.
      hhvaroute = 0.

!! reservoir variables
      res_vol = 0.
      res_vol = orig_resvol
      res_sed = 0.
      res_sed = orig_ressed
      lkpst_conc = 0.
      lkpst_conc = orig_lkpstconc
      lkspst_conc = 0.
      lkspst_conc = orig_lkspstconc
      res_solp = 0.
      res_solp = orig_ressolp
      res_orgp = 0.
      res_orgp = orig_resorgp
      res_no3 = 0.
      res_no3 = orig_resno3
      res_no2 = 0.
      res_no2 = orig_resno2
      res_nh3 = 0.
      res_nh3 = orig_resnh3
      res_orgn = 0.
      res_orgn = orig_resorgn
      res_chla = 0.
      res_seci = 0.

!! reset random number generator seeds
      rndseed = 0
      rnd2 = 0.
      rnd3 = 0.
      rnd8 = 0.
      rnd9 = 0.
      call gcycl

!! rewind daily/hourly files
       ifirsthr = 1
       ifirstr = 1

!! files listed in .fig
       do idum = 1, mhyd
        icode = 0
        ihout = 0
        inum1 = 0
        inum2 = 0
        inum3 = 0
        rnum1 = 0.
        inum4 = 0
        icode = icodes(idum)
        ihout = ihouts(idum)
        inum1 = inum1s(idum)
        inum2 = inum2s(idum)
        inum3 = inum3s(idum)
        rnum1 = rnum1s(idum)
        inum4 = inum4s(idum)

        select case (icode)
          case (6)   !!rechour
            rewind (unit=200+inum1)
              do ii = 1, 6
                read (200+inum1,5000) titldum
              end do
          case (10)  !!recday
            rewind (unit=555+inum1)
              do ii = 1, 6
                read (555+inum1,5000) titldum
              end do
          !!case (14) !!saveconc
          case default
        end select
      end do

!! weather files
       !!precipitation
       do idum = 1, nrgage
        if (rfile(idum) /= '             ') then
          rewind (unit=100+idum)
          do ii = 1, 4
            read (100+idum,5000) titldum
          end do
        end if
       end do
       !! temperature
       do idum = 1, ntgage
        if (tfile(idum) /= '             ') then
          rewind (unit=118+idum)
          do ii = 1, 4
            read (118+idum,5000) titldum
          end do
        end if
       end do
       !! solar radiation
       if (slrfile /= '             ') then
         rewind (unit=137)
         read (137,5000) titldum
       end if
       !! relative humidity
       if (rhfile /= '             ') then
         rewind (unit=138)
         read (138,5000) titldum
       end if
       !! wind speed
       if (wndfile /= '             ') then
         rewind (unit=139)
         read (139,5000) titldum
       end if
       !! PET
       if (petfile /= '             ') then
         rewind (unit=140)
         read (140,5000) titldum
       end if

       !!daily reservoir outflow file
       do idum = 1, nres
         if (iresco(idum) == 3) then
           rewind (unit=350+idum)
           read (350+idum,5000) titldum
         end if
       end do
    
      return
 5000 format (a80)
      end

⌨️ 快捷键说明

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