Last change
on this file since 4934 was
1907,
checked in by lguez, 11 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 | |
---|
1 | module zroots_unity_m |
---|
2 | |
---|
3 | implicit none |
---|
4 | |
---|
5 | contains |
---|
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 | |
---|
35 | end module zroots_unity_m |
---|
Note: See
TracBrowser
for help on using the repository browser.