Last change
on this file since 2791 was
1910,
checked in by Laurent Fairhead, 11 years ago
|
Merged trunk changes r1860:1909 into testing branch
|
-
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:
770 bytes
|
Line | |
---|
1 | module ifirstloc_m |
---|
2 | |
---|
3 | implicit none |
---|
4 | |
---|
5 | contains |
---|
6 | |
---|
7 | INTEGER FUNCTION ifirstloc(mask) |
---|
8 | |
---|
9 | ! Location of first true value in a logical array, returned as an |
---|
10 | ! integer. Returns size(mask)+1 if mask has zero element or all |
---|
11 | ! elements of mask are false. So the result is always >= 1. |
---|
12 | |
---|
13 | ! See notes on programming choices. |
---|
14 | |
---|
15 | LOGICAL, INTENT(IN):: mask(:) |
---|
16 | |
---|
17 | ! Local: |
---|
18 | integer n |
---|
19 | |
---|
20 | !------------------------------------------------------- |
---|
21 | |
---|
22 | n = size(mask) |
---|
23 | ifirstloc = 1 |
---|
24 | |
---|
25 | if (n >= 1) then |
---|
26 | do while (ifirstloc <= n - 1 .and. .not. mask(ifirstloc)) |
---|
27 | ifirstloc = ifirstloc + 1 |
---|
28 | end do |
---|
29 | ! {1 <= ifirstloc <= n} |
---|
30 | if (.not. mask(ifirstloc)) ifirstloc = n + 1 |
---|
31 | end if |
---|
32 | |
---|
33 | END FUNCTION ifirstloc |
---|
34 | |
---|
35 | end module ifirstloc_m |
---|
Note: See
TracBrowser
for help on using the repository browser.