The TELEMAC-MASCARET system  trunk
precar.f
Go to the documentation of this file.
1 ! ***********************
2  INTEGER FUNCTION precar
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 CHARACTER CAR
12 !+ IN THE LINE (EVEN IF IT FOLLOWS '/')
13 !+ RETURNS THE MAXIMUM LENGTH OF THE LINE IF THIS CHARACTER
14 !+ IS NOT FOUND.
15 !+
16 !+ THIS FUNCTION IS USED TO FIND THE END OF A STRING OF
17 !+ CHARACTERS. THIS STRING CAN CONTAIN THE CHARACTER '/',
18 !+ WHICH IS WHY PREVAL IS NOT USED IN THIS CASE (PREVAL
19 !+ SKIPS COMMENTED LINES).
20 !
21 !note PORTABILITY : IBM,CRAY,HP,SUN
22 !note OPTIMISED: SENDS CAR1, CAR2, CAR3 IN THE MOST PROBABLE ORDER
23 !
24 !history O. QUIQUEMPOIX (LNH)
25 !+ 15/12/1993
26 !+
27 !+
28 !
29 !history J.M. HERVOUET (LNH); A. YESSAYAN
30 !+ 16/08/1994
31 !+ V5P1
32 !+
33 !
34 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
35 !+ 13/07/2010
36 !+ V6P0
37 !+ Translation of French comments within the FORTRAN sources into
38 !+ English comments
39 !
40 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
41 !+ 21/08/2010
42 !+ V6P0
43 !+ Creation of DOXYGEN tags for automated documentation and
44 !+ cross-referencing of the FORTRAN sources
45 !
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !| CAR1,CAR2,CAR3 |-->| CARACTERES RECHERCHES DANS LA LIGNE
48 !| ICOL |-->| POSITION COURANTE DU POINTEUR DANS LA LIGNE
49 !| LIGNE |-->| LIGNE EN COURS DE DECODAGE
50 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51 !
53  IMPLICIT NONE
54 !
55  INTEGER ICOL
56  CHARACTER(LEN=1) CAR1,CAR2,CAR3
57  CHARACTER(LEN=*) LIGNE
58 !
59 !-----------------------------------------------------------------------
60 !
61  INTEGER K
62 !
63 !***********************************************************************
64 ! RCS AND SCCS MARKING
65 !
66 !***********************************************************************
67 !
68  precar = longli
69 !
70  DO k = icol,longli
71  IF (ligne(k:k).EQ.car1.OR.ligne(k:k).EQ.car2.OR.
72  & ligne(k:k).EQ.car3) THEN
73  precar = k
74  GO TO 1000
75  ENDIF
76  ENDDO ! K
77 !
78  precar=longli+1
79 !
80 1000 CONTINUE
81 !
82 !-----------------------------------------------------------------------
83 !
84  RETURN
85  END
integer function precar(ICOL, LIGNE, CAR1, CAR2, CAR3)
Definition: precar.f:7