47#include "implicit_f.inc"
52#include "i25edge_c.inc"
61 INTEGER,
INTENT(IN) :: JTASK
62 INTEGER,
INTENT(IN) :: IEDGE, NEDGE
63 INTEGER,
INTENT(IN) :: (4,*)
64 INTEGER,
INTENT(INOUT) :: LEDGE(NLEDGE,*)
66 my_real,
INTENT(IN) :: STIFM(*)
67 my_real,
INTENT(INOUT) :: STFE(NEDGE)
71 INTEGER :: NEDG,NEDGFT,NEDGLT
72 INTEGER :: IRM,IEDG,JRM,JEDG
78 nedgft= 1+(jtask-1)*nedge/ nthread
79 nedglt= jtask*nedge/nthread
81 irm =ledge(ledge_left_seg,nedg)
82 iedg=ledge(ledge_left_id,nedg)
83 jrm =ledge(ledge_right_seg,nedg)
84 jedg=ledge(ledge_right_id,nedg)
87 IF(irm > 0 .AND. jrm > 0)
THEN
91 ELSEIF(irm < 0 .AND. jrm > 0)
THEN
99 IF(mvoisin(jedg,jrm) == 0 ) s1 = zero
101 ELSEIF(irm > 0 .AND. jrm < 0)
THEN
108 IF(mvoisin(iedg,irm) == 0) s2 = zero
124 ledge(ledge_left_seg,nedg) = jrm
125 ledge(ledge_left_id,nedg) = jedg
126 ELSEIF (jrm < 0)
THEN
127 ledge(ledge_left_seg,nedg) = -abs(irm)
132 IF(ledge(ledge_weight,nedg) == 1)
THEN
133 ledge(ledge_global_id,nedg) = -abs(ledge(ledge_global_id,nedg))
137 ledge(ledge_seg1_im,nedg) = ledge(ledge_seg2_im,nedg)
138 ledge(ledge_seg1_i1,nedg) = ledge(ledge_seg2_i1,nedg)
139 ledge(ledge_seg1_i2,nedg) = ledge(ledge_seg2_i2,nedg)
140 ledge(ledge_right_seg,nedg) = 0
143 ledge(ledge_right_id,nedg) = 0
148 ELSEIF(s2 == zero)
THEN
152 ledge(ledge_right_seg,nedg) = 0
153 ledge(ledge_right_id,nedg) = 0
156 IF(ledge(ledge_weight,nedg) == 1)
THEN
157 ledge(ledge_global_id,nedg) = -abs(ledge(ledge_global_id,nedg
166 DO nedg = nedgft,nedglt
167 irm = ledge(ledge_left_seg,nedg)
168 jrm = ledge(ledge_right_seg,nedg)
175 IF(stifm(irm)==zero)
THEN
176 IF(stfe(nedg) > zero)
THEN
177 stfe(nedg) = -stfe(nedg)
191 iedg=ledge(ledge_left_id ,nedg)
193 IF(mvoisin(iedg,abs(irm))==0) s1 = zero
205 IF(stfe(nedg) > zero)
THEN
206 stfe(nedg) = -stfe(nedg)
210 ELSEIF (irm == 0)
THEN
212 IF(stfe(nedg) > zero)
THEN
213 stfe(nedg) = -stfe(nedg)