Last change
on this file since 2624 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
|
Rev | Line | |
---|
[1765] | 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.