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