34
35
36
37
38
39
40
41
42
43
44
45
46 USE multi_fvm_mod
48
49
50
51#include "implicit_f.inc"
52
53
54
55
56#include "com01_c.inc"
57
58#include "com04_c.inc"
59
60#include "task_c.inc"
61
62#include "param_c.inc"
63
64
65
66 TYPE(MULTI_FVM_STRUCT), INTENT(INOUT) :: MULTI_FVM
67 INTEGER, INTENT(IN) :: ITASK
68 INTEGER, INTENT(IN) :: IPARG(NPARG, *)
69 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
70
71
72
73 INTEGER :: NB_FACE, KFACE, KFACE2, II, I, J, MATLAW
74 INTEGER :: ITY, NFT, NEL, NG, NUMEL_SPMD
75 LOGICAL :: IDBG
76 INTEGER :: IAD, IAD2, LGTH, LGTH2
77 nb_face = 0
78 numel_spmd = 0
79
80 DO ng = itask + 1, ngroup, nthread
81 matlaw = iparg(1, ng)
82 IF (matlaw == 151) THEN
83 nel = iparg(2, ng)
84 nft = iparg(3, ng)
85 ity = iparg(5, ng)
86 SELECT CASE (multi_fvm%SYM)
87 CASE (0)
88 nb_face = 6
89 numel_spmd = numels
90 CASE (1, 2)
91 IF (ity == 2) THEN
92
93 nb_face = 4
94 numel_spmd = numelq
95 ELSEIF (ity == 7) THEN
96
97 nb_face = 3
98 numel_spmd = numeltg
99 ENDIF
100 CASE DEFAULT
102 END SELECT
103 DO ii = 1, nel
104 i = ii + nft
105 iad = ale_connectivity%ee_connect%iad_connect(i)
106 lgth = ale_connectivity%ee_connect%iad_connect(i+1) -
107 . ale_connectivity%ee_connect%iad_connect(i)
108 DO kface = 1, lgth
109 j = ale_connectivity%ee_connect%connected(iad + kface - 1)
110 IF (j > 0 .AND. j <= numel_spmd) THEN
111 iad2 = ale_connectivity%ee_connect%iad_connect(j)
112 lgth2 = ale_connectivity%ee_connect%iad_connect(j+1) -
113 . ale_connectivity%ee_connect%iad_connect(j)
114 DO kface2 = 1, lgth2
115 IF (i == ale_connectivity%ee_connect%connected(iad2 + kface2 - 1)) THEN
116 EXIT
117 ENDIF
118 ENDDO
119 multi_fvm%FVM_CONNECTIVITY%KVOIS(nb_face * (i - 1) + kface) = kface2
120 ENDIF
121 ENDDO
122 ENDDO
123 ENDIF
124 ENDDO
125
126 idbg = .false.
127
128 IF (idbg) THEN
129 DO ng = itask + 1, ngroup, nthread
130 matlaw = iparg(1, ng)
131 IF (matlaw == 151) THEN
132 nel = iparg(2, ng)
133 nft = iparg(3, ng)
134 ity = iparg(5, ng)
135 SELECT CASE (multi_fvm%SYM)
136 CASE (0)
137 nb_face = 6
138 numel_spmd = numels
139 CASE (1, 2)
140 IF (ity == 2) THEN
141
142 nb_face = 4
143 numel_spmd = numelq
144 ELSEIF (ity == 7) THEN
145
146 nb_face = 3
147 numel_spmd = numeltg
148 ENDIF
149 CASE DEFAULT
151 END SELECT
152 DO ii = 1, nel
153 i = ii + nft
154 iad = ale_connectivity%ee_connect%iad_connect(i)
155 lgth = ale_connectivity%ee_connect%iad_connect(i
156 . ale_connectivity%ee_connect%iad_connect(i)
157 DO kface = 1, lgth
158 j = ale_connectivity%ee_connect%connected(iad + kface - 1)
159 IF (j> 0 .AND. j <= numel_spmd) THEN
160 iad2 = ale_connectivity%ee_connect%iad_connect(j)
161 kface2 = multi_fvm%FVM_CONNECTIVITY%KVOIS(nb_face * (i - 1) + kface)
162 IF (ale_connectivity%ee_connect%connected(iad2 + kface2 - 1) /= i) THEN
163 print*, "OUPS"
164 ENDIF
165 ENDIF
166 ENDDO
167 ENDDO
168 ENDIF
169 ENDDO
170 ENDIF
171