48#include "implicit_f.inc"
61 INTEGER,
INTENT(IN) :: ITASK, IPARG(NPARG, *), IXS(NIXS, *), IXQ(NIXQ, *), IXTG(NIXTG, *)
62 my_real,
INTENT(IN) :: xgrid(3, *), wgrid(3, *)
63 TYPE(multi_fvm_struct),
INTENT(INOUT) :: MULTI_FVM
67 INTEGER :: NG, MTN, NEL, ITY, ISOLNOD, NFT, JALE
68 LOGICAL :: COMPUTE_CENTROID
70 compute_centroid = (multi_fvm%MUSCL > 0) .OR. multi_fvm%NS_DIFF
72 DO ng = itask + 1, ngroup, nthread
79 isolnod = iparg(28, ng)
82 IF (isolnod == 4)
THEN
84 CALL snorm3t(nel, nft, jale, ixs, xgrid, wgrid,
85 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:6, 1 + nft : nel + nft),
86 . multi_fvm%FACE_DATA%WFAC(1:3, 1:6, 1 + nft : nel + nft),
87 . multi_fvm%FACE_DATA%SURF(1:6, 1 + nft : nel + nft))
88 IF (compute_centroid)
THEN
89 CALL centroid3t(nel, multi_fvm%NELEM, nft, ixs, xgrid,
90 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
91 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
95 CALL snorm3(nel, nft, jale, ixs, xgrid, wgrid,
96 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:6, 1 + nft : nel + nft),
97 . multi_fvm%FACE_DATA%WFAC(1:3, 1:6, 1 + nft : nel + nft)
98 . multi_fvm%FACE_DATA%SURF(1:6, 1 + nft : nel + nft
100 IF (compute_centroid)
THEN
101 CALL centroid3(nel, multi_fvm%NELEM, nft, ixs, xgrid,
102 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft
103 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
106 ELSE IF (ity == 2)
THEN
108 CALL qnorm2(nel, nft, jale, multi_fvm%SYM, ixq, xgrid, wgrid,
109 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:4, 1 + nft : nel + nft),
110 . multi_fvm%FACE_DATA%WFAC(1:3, 1:4, 1 + nft : nel + nft),
111 . multi_fvm%FACE_DATA%SURF(1:4, 1 + nft : nel + nft))
112 IF (compute_centroid)
THEN
113 CALL centroid2(nel, multi_fvm%NELEM, nft, ixq, xgrid,
114 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
115 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))
117 ELSE IF (ity == 7)
THEN
119 CALL qnorm2t(nel, nft, jale, multi_fvm%SYM, ixtg, xgrid, wgrid,
120 . multi_fvm%FACE_DATA%NORMAL(1:3, 1:3, 1 + nft : nel + nft),
121 . multi_fvm%FACE_DATA%WFAC(1:3, 1:3, 1 + nft : nel + nft),
122 . multi_fvm%FACE_DATA%SURF(1:3, 1 + nft : nel + nft))
123 IF (compute_centroid)
THEN
124 CALL centroid2t(nel, multi_fvm%NELEM, nft, ixtg, xgrid,
125 . multi_fvm%ELEM_DATA%CENTROID(:, 1 + nft : nel + nft),
126 . multi_fvm%FACE_DATA%CENTROID(:, :, 1 + nft : nel + nft))