33 USE ebcs_mod
34
35
36
37
38
39
40
41
42
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "com04_c.inc"
51#include "com08_c.inc"
52
53
54
55 INTEGER, INTENT(IN) :: NP(NFUNCT)
56 my_real,
INTENT(IN) :: fv(*), tf(*)
57 TYPE(t_ebcs_tab), TARGET, INTENT(IN) :: EBCS_TAB
58
59
60
61 INTEGER I, N, NPOINT
62 INTEGER :: EBCS_EXTRAP(NFUNCT)
63 CLASS(t_ebcs), POINTER :: EBCS
64
65 DO i = 1, nfunct
66 ebcs_extrap(i) = 0
67 ENDDO
68
69 DO i = 1, nebcs
70 IF(.NOT.ebcs_tab%need_to_compute(i)) cycle
71 ebcs => ebcs_tab%tab(i)%poly
72 SELECT TYPE (ebcs)
73 TYPE IS (t_ebcs_gradp0)
74 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
75 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
76 IF (ebcs%ipres > 0) ebcs_extrap(ebcs%ipres) = 1
77 TYPE IS (t_ebcs_pres)
78 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
79 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
80 IF (ebcs%ipres > 0) ebcs_extrap(ebcs%ipres) = 1
81 TYPE IS (t_ebcs_valvin)
82 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
83 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
84 IF (ebcs%ipres > 0) ebcs_extrap(ebcs%ipres) = 1
85 TYPE IS (t_ebcs_valvout)
86 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
87 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
88 IF (ebcs%ipres > 0) ebcs_extrap(ebcs%ipres) = 1
89 TYPE IS (t_ebcs_vel)
90 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
91 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
92 IF (ebcs%ivx > 0) ebcs_extrap(ebcs%ivx) = 1
93 IF (ebcs%ivy > 0) ebcs_extrap(ebcs%ivy) = 1
94 IF (ebcs%ivz > 0) ebcs_extrap(ebcs%ivz) = 1
95 TYPE IS (t_ebcs_normv)
96 IF (ebcs%irho > 0) ebcs_extrap(ebcs%irho) = 1
97 IF (ebcs%iener > 0) ebcs_extrap(ebcs%iener) = 1
98 IF (ebcs%ivimp > 0) ebcs_extrap(ebcs%ivimp) = 1
99 CLASS DEFAULT
100 END SELECT
101 ENDDO
102
103 DO n=1,nfunct
104 IF (ebcs_extrap(n) == 1) THEN
105 npoint=(np(n+1)-np(n))/2
107 ENDIF
108 ENDDO
109
110 RETURN