SURFEX v8.1
General documentation of Surfex
isrchfltpv.F
Go to the documentation of this file.
1  FUNCTION isrchfltpv(N,ARRAY,INC,TARGET,NBITER)
2  USE parkind1, ONLY : jpim, jprb
3  IMPLICIT NONE
4  INTEGER(KIND=JPIM) :: ISRCHFLTPV
5  INTEGER(KIND=JPIM) :: N
6  INTEGER(KIND=JPIM) :: INC
7  REAL(KIND=JPRB) :: ARRAY(1+inc*(n-1))
8  REAL(KIND=JPRB) :: TARGET
9  INTEGER(KIND=JPIM) :: NBITER
10  INTEGER :: I
11 !
12  IF (n.LE.0) THEN
13  isrchfltpv=0
14  RETURN
15  ELSE
16  IF (nbiter.EQ.3) THEN
17  DO 3 i=1,n-nbiter
18  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
19  IF ( array(1+inc*(i)).LT.TARGET ) THEN
20  IF ( array(1+inc*(i+1)).LT.TARGET ) THEN
21  IF ( array(1+inc*(i+2)).LT.TARGET ) THEN
22  isrchfltpv=i
23  RETURN
24  ENDIF
25  ENDIF
26  ENDIF
27  ENDIF
28  3 CONTINUE
29  DO i=n-nbiter+1,n
30  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
31  isrchfltpv=i
32  RETURN
33  ENDIF
34  ENDDO
35  ELSEIF (nbiter.EQ.2) THEN
36  DO 2 i=1,n-nbiter
37  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
38  IF ( array(1+inc*(i)).LT.TARGET ) THEN
39  IF ( array(1+inc*(i+1)).LT.TARGET ) THEN
40  isrchfltpv=i
41  RETURN
42  ENDIF
43  ENDIF
44  ENDIF
45  2 CONTINUE
46  DO i=n-nbiter+1,n
47  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
48  isrchfltpv=i
49  RETURN
50  ENDIF
51  ENDDO
52  ELSEIF (nbiter.EQ.1) THEN
53  DO 1 i=1,n-nbiter
54  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
55  IF ( array(1+inc*(i)).LT.TARGET ) THEN
56  isrchfltpv=i
57  RETURN
58  ENDIF
59  ENDIF
60  1 CONTINUE
61  DO i=n-nbiter+1,n
62  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
63  isrchfltpv=i
64  RETURN
65  ENDIF
66  ENDDO
67  ELSEIF (nbiter.EQ.0) THEN
68  DO 4 i=1,n-nbiter
69  IF ( array(1+inc*(i-1)).LT.TARGET ) THEN
70  isrchfltpv=i
71  RETURN
72  ENDIF
73  4 CONTINUE
74  ELSE
75  CALL abor1('ISRCHFLTPV: ERROR WITH NBITER VALUE')
76  ENDIF
77  isrchfltpv=n+1
78  ENDIF
79  ENDFUNCTION isrchfltpv
integer, parameter jpim
Definition: parkind1.F90:13
subroutine abor1(CDTEXT)
Definition: abor1.F90:2
integer(kind=jpim) function isrchfltpv(N, ARRAY, INC, TARGET, NBITER)
Definition: isrchfltpv.F:2
integer, parameter jprb
Definition: parkind1.F90:32