!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      
      
      
        
          Subroutines
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | AlbSnow(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | AlbSoil(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | integer, | intent(in) |  |  | :: | ICE_SoilType |  | 
        
            | integer, | intent(in) |  |  | :: | lakes_cable |  | 
        
            | logical, | intent(in) |  |  | :: | jls_radiation |  | 
        
            | logical, | intent(in) |  |  | :: | veg_mask(mp) |  | 
        
            | real, | intent(in) |  |  | :: | Ccoszen_tols |  | 
        
            | real, | intent(in) |  |  | :: | Cgauss_w(nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | SurfaceType(mp) |  | 
        
            | integer, | intent(in) |  |  | :: | SoilType(mp) |  | 
        
            | real, | intent(in) |  |  | :: | VegRefl(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | VegTaul(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | coszen(mp) |  | 
        
            | real |  |  |  | :: | reducedLAIdue2snow(mp) |  | 
        
            | real, | intent(in) |  |  | :: | SnowDepth(mp) |  | 
        
            | real, | intent(in) |  |  | :: | SnowDensity(mp) |  | 
        
            | real, | intent(in) |  |  | :: | SoilTemp(mp) |  | 
        
            | real, | intent(in) |  |  | :: | SnowAge(mp) |  | 
        
            | real, | intent(in) |  |  | :: | xk(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | c1(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | rhoch(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | RadFbeam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | RadAlbedo(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | ExtCoeff_beam(mp) |  | 
        
            | real, | intent(in) |  |  | :: | ExtCoeff_dif(mp) |  | 
        
            | real, | intent(in) |  |  | :: | EffExtCoeff_beam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | EffExtCoeff_dif(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyRefl_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyRefl_dif(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyTransmit_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyTransmit_dif(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | EffSurfRefl_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | EffSurfRefl_dif(mp,nrb) |  | 
    
  
     
   
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | CanopyRefl_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyRefl_dif(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | real, | intent(in) |  |  | :: | Cgauss_w(nrb) |  | 
        
            | logical, | intent(in) |  |  | :: | veg_mask(mp) |  | 
        
            | real, | intent(in) |  |  | :: | AlbSnow(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | xk(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | rhoch(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | ExtCoeff_beam(mp) |  | 
        
            | real, | intent(in) |  |  | :: | ExtCoeff_dif(mp) |  | 
    
  
     
   
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | CanopyTransmit_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | CanopyTransmit_dif(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | logical, | intent(in) |  |  | :: | mask(mp) |  | 
        
            | real, | intent(in) |  |  | :: | reducedLAIdue2snow(mp) |  | 
        
            | real, | intent(in) |  |  | :: | EffExtCoeff_beam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | EffExtCoeff_dif(mp,nrb) |  | 
    
  
     
   
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | EffSurfRefl_beam(mp,nrb) |  | 
        
            | real, | intent(out) |  |  | :: | EffSurfRefl_dif(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | logical, | intent(in) |  |  | :: | veg_mask(mp) |  | 
        
            | real, | intent(in) |  |  | :: | CanopyRefl_beam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | CanopyRefl_dif(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | CanopyTransmit_beam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | CanopyTransmit_dif(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | AlbSnow(mp,nrb) |  | 
    
  
     
   
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | EffRefl(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | real, | intent(in) |  |  | :: | CanopyRefl(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | AlbSnow(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | CanopyTransmit(mp,nrb) |  | 
        
            | logical, | intent(in) |  |  | :: | mask(mp) |  | 
    
  
     
   
              
    
    
          
  
  Arguments
      
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | real, | intent(out) |  |  | :: | RadAlbedo(mp,nrb) |  | 
        
            | integer, | intent(in) |  |  | :: | mp |  | 
        
            | integer, | intent(in) |  |  | :: | nrb |  | 
        
            | logical, | intent(in) |  |  | :: | veg_mask(mp) |  | 
        
            | real, | intent(in) |  |  | :: | RadFbeam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | EffSurfRefl_beam(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | EffSurfRefl_dif(mp,nrb) |  | 
        
            | real, | intent(in) |  |  | :: | AlbSnow(mp,nrb) |  |