source: LMDZ5/trunk/tools/Max_diff_nc_with_lib/NR_util/ifirstloc.f90 @ 1874

Last change on this file since 1874 was 1765, checked in by lguez, 11 years ago

A tool to compare NetCDF files.

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.