The TELEMAC-MASCARET system  trunk
bornes.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE bornes
3 ! *****************
4 !
5  &( b , n , a , xm , x0 , x1 )
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 08/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE INTEGRATION BOUNDS FOR THE INTEGRATION
12 !+ OF THE FUNCTION "FONCRO", USING GAUSS QUADRATURES.
13 !
14 !history F. BECQ (EDF/DER/LNH)
15 !+ 26/03/96
16 !+ V1P1
17 !+
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !history G.MATTAROLO (EDF - LNHE)
32 !+ 08/06/2011
33 !+ V6P1
34 !+ Translation of French names of the variables in argument
35 !
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !| A |-->| PARAMETER A OF THE FUNCTION TO INTGRATE
38 !| B |-->| PARAMETER B OF THE FUNCTION TO INTGRATE
39 !| N |-->| EXPONENT N OF THE FUNCTION TO INTGRATE
40 !| X0 |<--| LOWER BOUND OF THE INTERVAL
41 !| X1 |<--| UPPER BOUND OF THE INTERVAL
42 !| XM |-->| PARAMETER XM OF THE FUNCTION TO INTGRATE
43 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 !
46  USE interface_tomawac, ex_bornes => bornes
47  IMPLICIT NONE
48 !
49 !
50 ! VARIABLES IN ARGUMENT
51 ! """""""""""""""""""""
52  INTEGER, INTENT(IN) :: N
53  DOUBLE PRECISION, INTENT(IN) :: B, A, XM
54  DOUBLE PRECISION, INTENT(INOUT) :: X0, X1
55 !
56 ! LOCAL VARIABLES
57 ! """"""""""""""""""
58  INTEGER I0 , I1 , II , JJ , IMAX , INP
59  DOUBLE PRECISION X(11) , Y(11) , EPS , EPS1 , DX
60 !
61 !.....EXTERNAL FUNCTIONS
62 ! """"""""""""""""""
63 ! DOUBLE PRECISION FONCRO
64 ! EXTERNAL FONCRO
65 !
66 !
67  i1 = 11
68  i0 = 1
69  x(i0)= 0.d0
70  x(i1)= 20.d0
71  y(1) = 0.d0
72  eps1 = 0.01d0
73  eps = 0.0001d0
74  inp = 0
75 !
76  DO ii=1,20
77  dx = (x(i1)-x(i0))/10.d0
78  x(1) = x(i0)
79  imax = 0
80  i0 = 1
81  i1 = 11
82  DO jj=2,11
83  x(jj)=x(jj-1)+dx
84  y(jj)=foncro(x(jj),b,n,a,xm)
85  IF(y(jj).EQ.0.d0.AND.jj.EQ.2.AND.inp.EQ.0d0) THEN
86  x(i1) = x(i1)/10.d0
87  inp = 1
88  GOTO 10
89  END IF
90  IF(y(jj).LT.y(jj-1)) THEN
91  IF(imax.EQ.0) THEN
92  imax = jj-1
93  eps = eps1*y(imax)
94  END IF
95  IF (y(jj).LT.eps) THEN
96  i1 = jj
97  EXIT
98  END IF
99  ELSEIF(imax.EQ.0.AND.y(jj).LT.eps.AND.jj.NE.2) THEN
100  i0 = jj
101  END IF
102  END DO
103  IF((i1-i0).GT.2) EXIT
104  10 CONTINUE
105  ENDDO ! II
106 !
107  x0 = x(i0)
108  x1 = x(i1)
109 !
110  RETURN
111  END
subroutine bornes(B, N, A, XM, X0, X1)
Definition: bornes.f:7
double precision function foncro(X, B, N, A, XM)
Definition: foncro.f:7