40
41
42
43
44
45
46
47
48
49
50
52 USE multi_fvm_mod
54 use element_mod , only : nixs,nixq,nixc,nixt,nixtg
55
56
57
58#include "implicit_f.inc"
59
60
61
62#include "com01_c.inc"
63#include "com04_c.inc"
64#include "param_c.inc"
65
66
67
68 INTEGER,INTENT(IN) :: ITHERM
69 LOGICAL,INTENT(IN) :: ISHADOW
70 INTEGER,INTENT(IN) :: ICODE(*),IXS(3,NUMNOD),IXQ(NIXQ,NUMELQ),IXC(NIXC,NUMELC),IXT(NIXT,NUMELT),IXTG(NIXTG,NUMELTG)
71 INTEGER,INTENT(IN) :: ITAB(NUMNOD), NALE_R2R(*),FLAG_R2R,IGEO(NPROPGI,NUMGEO)
72 my_real,
INTENT(IN) :: pm(npropm,nummat), geo(npropg,numgeo)
73 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
74 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
75
76
77
78 INTEGER :: I
79
80
81
82 CALL ale_connectivity%ALE_COMPUTE_EE_CONNECTIVITY(
83 . pm , igeo,
84 . npropgi, numgeo, npropm, nummat , numnod , numelq, numeltg, numels, n2d,
85 . iale , ieuler, itherm, ialelag, ishadow,
86 . nixq , nixtg , nixs ,
87 . ixq , ixtg , ixs )
88
89 IF (ale_connectivity%has_ne_connect .OR. ale_connectivity%has_nn_connect) THEN
90 CALL ale_connectivity%ALE_COMPUTE_CONNECTIVITY(
91 . numnod, numelq, numeltg, numels,
92 . nixq , nixtg , nixs ,
93 . ixq , ixtg , ixs)
94 ENDIF
95
96 CALL ale_check_lag(ale_connectivity%NALE,ixs,ixq,ixc,ixt,ixtg,pm,itab,nale_r2r,flag_r2r,igeo)
97
98 IF (ale_connectivity%has_nn_connect) THEN
99 CALL alesop(ale_connectivity%NALE, ale_connectivity%NN_CONNECT, icode, itab)
100 ENDIF
101
102
103
104 IF (n2d == 0)THEN
105 CALL aleso3(ale_connectivity,pm,ixs,geo,igeo)
106 ELSEIF( .NOT. multi_fvm%IS_USED .OR. numelq /= 0) THEN
107 CALL aleso2(ale_connectivity,pm,ixq,igeo)
108 ELSE
109 CALL aleso2t(ale_connectivity, pm, ixtg,igeo)
110 ENDIF
111
112
113 IF(multi_fvm%IS_USED)THEN
114 DO i=1,numnod
115 IF( ale_connectivity%NALE(i)==151)THEN
116 ale_connectivity%NALE(i)=-1
117 ELSEIF(ale_connectivity%NALE(i)==152)THEN
118 ale_connectivity%NALE(i)=-2
119 ENDIF
120 ENDDO
121 ENDIF
122
123 RETURN
subroutine ale_check_lag(nale, ixs, ixq, ixc, ixt, ixtg, pm, itab, nale_r2r, flag_r2r, igeo)
subroutine aleso2(ale_connectivity, pm, ixq, igeo)
subroutine aleso2t(ale_connectivity, pm, ixtg, igeo)
subroutine aleso3(ale_connectivity, pm, ixs, geo, igeo)
subroutine alesop(nale, ale_nn_connect, icode, itab)