ch_initial.f90 Source File


This file depends on

sourcefile~~ch_initial.f90~~EfferentGraph sourcefile~ch_initial.f90 ch_initial.f90 sourcefile~channel_data_module.f90 channel_data_module.f90 sourcefile~ch_initial.f90->sourcefile~channel_data_module.f90 sourcefile~channel_module.f90 channel_module.f90 sourcefile~ch_initial.f90->sourcefile~channel_module.f90

Source Code

      subroutine ch_initial (idat, irch)

      use channel_data_module
      use channel_module
      
      implicit none
      
      integer :: irch     !none      |counter
      integer :: ised = 0 !none      |counter
      integer :: idat     !units     |description
      real :: bnksize = 0.  !units     |description
      real :: bedsize = 0.  !units     |description
      real :: sc = 0.     !units     |description    
      
      ised = ch_dat(idat)%sed
      bnksize = ch_sed(ised)%bnk_d50 / 1000.  !! Units conversion Micrometer to Millimeters
!!    Channel sediment particle size distribution
!!    Clayey bank
    if (bnksize <= 0.005) then
      ch(irch)%bnk_cla = 0.65
        ch(irch)%bnk_sil = 0.15
      ch(irch)%bnk_san = 0.15
      ch(irch)%bnk_gra = 0.05
    end if

!!    Silty bank
    if (bnksize > 0.005 .and. bnksize <= 0.05) then
        ch(irch)%bnk_sil = 0.65
      ch(irch)%bnk_cla = 0.15
      ch(irch)%bnk_san = 0.15
      ch(irch)%bnk_gra = 0.05
    end if

!!    Sandy bank
    if (bnksize > 0.05 .and. bnksize <= 2.) then
      ch(irch)%bnk_san = 0.65
        ch(irch)%bnk_sil = 0.15
      ch(irch)%bnk_cla = 0.15
      ch(irch)%bnk_gra = 0.05
    end if
      
!!    Gravel bank
    if (bnksize > 2.) then
      ch(irch)%bnk_gra = 0.65
      ch(irch)%bnk_san = 0.15
        ch(irch)%bnk_sil = 0.15
      ch(irch)%bnk_cla = 0.05
    end if

!!    Channel sediment particle size distribution
!!    Clayey bed
      bedsize = ch_sed(ised)%bed_d50 / 1000.  !! Units conversion Micrometer to Millimeters
    if (bedsize <= 0.005) then
      ch(irch)%bed_cla = 0.65
        ch(irch)%bed_sil = 0.15
      ch(irch)%bed_san = 0.15
      ch(irch)%bed_gra = 0.05
    end if

!!    Silty bed
    if (bedsize > 0.005 .and. bedsize <= 0.05) then
        ch(irch)%bed_sil = 0.65
      ch(irch)%bed_cla = 0.15
      ch(irch)%bed_san = 0.15
      ch(irch)%bed_gra = 0.05
    end if

!!    Sandy bed
    if (bedsize > 0.05 .and. bedsize <= 2.) then
      ch(irch)%bed_san = 0.65
        ch(irch)%bed_sil = 0.15
      ch(irch)%bed_cla = 0.15
      ch(irch)%bed_gra = 0.05
    end if
      
!!    Gravel bed
    if (bedsize > 2.) then
      ch(irch)%bed_gra = 0.65
      ch(irch)%bed_san = 0.15
        ch(irch)%bed_sil = 0.15
      ch(irch)%bed_cla = 0.05
      end if
      
!!    An estimate of Critical shear stress if it is not given (N/m^2)
!!  Critical shear stress based on silt and clay %
!!  Critical Shear Stress based on Julian and Torres (2005)
!!    Units of critical shear stress (N/m^2)
    SC = 0.
    if  (ch_sed(ised)%tc_bnk <= 1.e-6) then 
      SC = (ch(irch)%bnk_sil + ch(irch)%bnk_cla) * 100.
        ch_sed(ised)%tc_bnk = (0.1 + (0.1779*SC) + (0.0028*(SC)**2)       &
                         - ((2.34E-05)*(SC)**3)) * ch_sed(ised)%cov1
      end if

    if  (ch_sed(ised)%tc_bed <= 1.e-6) then
      SC = (ch(irch)%bed_sil + ch(irch)%bed_cla) * 100.
        ch_sed(ised)%tc_bed = (0.1 + (0.1779*SC) + (0.0028*(SC)**2)       &
                         - ((2.34E-05)*(SC)**3)) * ch_sed(ised)%cov2
      end if

      return
      end subroutine ch_initial