The TELEMAC-MASCARET system  trunk
preval.f
Go to the documentation of this file.
1 ! ***********************
2  INTEGER FUNCTION preval
3 ! ***********************
4 !
5  &( icol , ligne , car1 , car2 , car3 )
6 !
7 !***********************************************************************
8 ! DAMOCLES V6P0 21/08/2010
9 !***********************************************************************
10 !
11 !brief RETURNS THE COLUMN INDEX OF THE 1ST VALID CHARACTER CAR
12 !+ IN THE LINE (I.E. NON-WHITE, NON-TABULATION AND NON-COMMENTED
13 !+ STRING)
14 !+ IF CANNOT FIND IT, RETURNS LONGLI + 1
15 !
16 !note PORTABILITY : IBM,CRAY,HP,SUN
17 !
18 !history O. QUIQUEMPOIX (LNH)
19 !+ 15/12/1993
20 !+
21 !+
22 !
23 !history J.M. HERVOUET (LNH); A. YESSAYAN
24 !+ 16/08/1994
25 !+ V5P1
26 !+
27 !
28 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
29 !+ 13/07/2010
30 !+ V6P0
31 !+ Translation of French comments within the FORTRAN sources into
32 !+ English comments
33 !
34 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
35 !+ 21/08/2010
36 !+ V6P0
37 !+ Creation of DOXYGEN tags for automated documentation and
38 !+ cross-referencing of the FORTRAN sources
39 !
40 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 !| CAR1,CAR2,CAR3 |-->| CARACTERES RECHERCHES DANS LA LIGNE
42 !| ICOL |-->| POSITION COURANTE DU POINTEUR DANS LA LIGNE
43 !| LIGNE |-->| LIGNE EN COURS DE DECODAGE
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
47  IMPLICIT NONE
48 !
49  INTEGER ICOL
50  CHARACTER(LEN=1) CAR1,CAR2,CAR3
51  CHARACTER(LEN=*) LIGNE
52 !
53 !-----------------------------------------------------------------------
54 !
55  INTEGER I,J
56 !
57 !***********************************************************************
58 ! RCS AND SCCS MARKING
59 !
60 !***********************************************************************
61 !
62  preval = longli + 1
63  i = icol -1
64 !
65 100 CONTINUE
66  i = i + 1
67  IF (ligne(i:i).NE.car1.AND.ligne(i:i).NE.car2.AND.
68  & ligne(i:i).NE.car3) THEN
69 !-----------------------------------------------------------------------
70 ! DOES NOT CONSIDER THE COMMENTED LINES:
71 !
72  IF ( i.GE.longli ) GO TO 1000
73  IF ( ligne(i:i).EQ.'/' ) THEN
74  DO j = i+1 , longli
75  IF ( ligne(j:j).EQ.'/' ) THEN
76  i = j
77  GO TO 100
78  ENDIF
79  ENDDO ! J
80  GO TO 1000
81 !--------------------------------------------------------------------
82  ELSE
83  GO TO 100
84  ENDIF
85  ELSE
86  preval = i
87  ENDIF
88 !
89 1000 CONTINUE
90 !
91  RETURN
92  END
integer function preval(ICOL, LIGNE, CAR1, CAR2, CAR3)
Definition: preval.f:7