source: LMDZ5/trunk/tools/Max_diff_nc_with_lib/NR_util/zroots_unity.f90 @ 1907

Last change on this file since 1907 was 1907, checked in by lguez, 10 years ago

Added a copyright property to every file of the distribution, except
for the fcm files (which have their own copyright). Use svn propget on
a file to see the copyright. For instance:

$ svn propget copyright libf/phylmd/physiq.F90
Name of program: LMDZ
Creation date: 1984
Version: LMDZ5
License: CeCILL version 2
Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
See the license file in the root directory

Also added the files defining the CeCILL version 2 license, in French
and English, at the top of the LMDZ tree.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 694 bytes
Line 
1module zroots_unity_m
2
3  implicit none
4
5contains
6
7  FUNCTION zroots_unity(n, nn)
8
9    ! Returns nn powers of the nth root of unity.
10
11    USE nrtype, only: wp, twopi
12
13    INTEGER, INTENT(IN) :: n, nn
14    COMPLEX(WP) zroots_unity(nn)
15
16    ! Local:
17    INTEGER k
18    REAL(WP) :: theta
19
20    !-------------------------------------------------
21
22    zroots_unity(1) = 1.
23    theta = TWOPI / n
24    k=1
25    do
26       if (k >= nn) exit
27       zroots_unity(k + 1) = cmplx(cos(k * theta), sin(k * theta), WP)
28       zroots_unity(k + 2: min(2 * k, nn)) = zroots_unity(k + 1) &
29            * zroots_unity(2: min(k, nn - k))
30       k = 2 * k
31    end do
32
33  END FUNCTION zroots_unity
34
35end module zroots_unity_m
Note: See TracBrowser for help on using the repository browser.