```

subroutine zenith(calday  ,clat    , clon   ,coszrs  ,ncol    ) 1,5
!-----------------------------------------------------------------------
!
! Purpose:
! Compute cosine of solar zenith angle for albedo and radiation
!   computations.
!
! Method:
! <Describe the algorithm(s) used in the routine.>
! <Also include any applicable external references.>
!
! Author: J. Kiehl
!
!-----------------------------------------------------------------------
use shr_kind_mod, only: r8 => shr_kind_r8
use shr_orb_mod
use cam_control_mod, only: lambm0, obliqr, eccen, mvelpp
implicit none

!------------------------------Arguments--------------------------------
!
! Input arguments
!
integer, intent(in) :: ncol                 ! number of positions
real(r8), intent(in) :: calday              ! Calendar day, including fraction
real(r8), intent(in) :: clat(ncol)          ! Current centered latitude (radians)
real(r8), intent(in) :: clon(ncol)          ! Centered longitude (radians)
!
! Output arguments
!
real(r8), intent(out) :: coszrs(ncol)       ! Cosine solar zenith angle
!
!---------------------------Local variables-----------------------------
!
integer i         ! Position loop index
real(r8) delta    ! Solar declination angle  in radians
real(r8) eccf     ! Earth orbit eccentricity factor
!
!-----------------------------------------------------------------------
!
call shr_orb_decl (calday  ,eccen     ,mvelpp  ,lambm0  ,obliqr  , &
delta   ,eccf      )
!
! Compute local cosine solar zenith angle,
!
do i=1,ncol
coszrs(i) = shr_orb_cosz( calday, clat(i), clon(i), delta )
end do

end subroutine zenith
```