source: LMDZ6/trunk/tools/Max_diff_nc_with_lib/NR_util/ifirstloc.f90

Last change on this file 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: 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.