# Module s2dw_dl_mod

```module s2dw_dl_mod

! Uses
use s2dw_types_mod, only: dp

! Subroutines and functions
public subroutine s2dw_dl_beta_operator (dl, beta, l)
private subroutine s2dw_dl_beta_operator_core (dl, beta, l)
private subroutine s2dw_dl_beta_operator_fill (dl, l)

end module s2dw_dl_mod
```
Functionality to compute specified plane of the Wigner dl matrix.

Note:

• Copied from s2 library so S2DW library is self contained.

Author: D. J. Mortlock

Version: 0.1 Compiled in S2DW library by JDM October 2007

## Description of Subroutines and Functions

### s2dw_dl_beta_operator

```public subroutine s2dw_dl_beta_operator (dl, beta, l)
real (kind=dp), intent(out), dimension (-l:l,-l:l) :: dl
real (kind=dp), intent(in) :: beta
integer, intent(in) :: l
! Calls: s2dw_dl_beta_operator_core, s2dw_dl_beta_operator_fill
end subroutine s2dw_dl_beta_operator
```
Calculates the lth plane of a d-matrix using Turok & Bucher's operator-based method.

Variables:

• dl: Dl matrix values computed for lth plane.
• beta: Beta euler angle to compute dl matrix for.
• l: Plane of dl matrix to compute values for.

Author: D. J. Mortlock

Version: 0.1 Compiled in s2dw library by JDM October 2007

### s2dw_dl_beta_operator_core

```private subroutine s2dw_dl_beta_operator_core (dl, beta, l)
real (kind=dp), intent(out), dimension (-l:l,-l:l) :: dl
real (kind=dp), intent(in) :: beta
integer, intent(in) :: l
end subroutine s2dw_dl_beta_operator_core
```
Does the left quarter of the d-matrix. Beta is the angle of rotation, l is the plane of the matrix required and dl is the two dimensional array representing the lth plane of the matrix. This array must be already allocated on entry with dimensions given by the command allocate(dl(- lmax: lmax, - lmax: lmax)) where lmax >= l.

Variables:

• dl: Dl matrix values computed for lth plane.
• beta: Beta euler angle to compute dl matrix for.
• l: Plane of dl matrix to compute values for.

Author: D. J. Mortlock

Version: 0.1 Compiled in s2dw library by JDM September 2005

### s2dw_dl_beta_operator_fill

```private subroutine s2dw_dl_beta_operator_fill (dl, l)
real (kind=dp), intent(inout), dimension (-l:l,-l:l) :: dl
integer, intent(in) :: l
end subroutine s2dw_dl_beta_operator_fill
```
Computes the three remaining (top, bottom and right) quarters of the d-matrix, given the left quarter.

Variables:

• dl: Dl matrix values computed for lth plane.
• beta: Beta euler angle to compute dl matrix for.

Author: D. J. Mortlock

Version: 0.1 Compiled in s2dw library by JDM September 2005