source: LMDZ5/branches/testing/tools/Max_diff_nc_with_lib/NR_util/ifirstloc.f90 @ 1795

Last change on this file since 1795 was 1795, checked in by Ehouarn Millour, 11 years ago

Version testing basee sur la r1794


Testing release based on r1794

File size: 770 bytes
Line 
1module ifirstloc_m
2
3  implicit none
4
5contains
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
35end module ifirstloc_m
Note: See TracBrowser for help on using the repository browser.