30
31
32
33
34
35
36
37
38
39
40
41
42 USE multi_fvm_mod
44
45
46
47#include "implicit_f.inc"
48
49
50
51 INTEGER, INTENT(in) :: NPARI
52 INTEGER, INTENT(in) :: NINTER
53 INTEGER, INTENT(in) :: NUMNOD
54 INTEGER, INTENT(in) :: NUMELS
55 INTEGER, DIMENSION(NPARI,NINTER), INTENT(in) :: IPARI
56 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
57
58
59
60 INTEGER :: N,II,MY_SIZE
61 INTEGER :: NTY,INACTI
62 INTEGER, DIMENSION(NINTER) :: INT18_LIST
63 INTEGER, DIMENSION(NINTER) :: IS_INTER_USED_WITH_LAW151
64
65
66
67 multi_fvm%IS_INT18_LAW151 = .false.
68 my_size = 0
69 ii = 0
70
71 IF(multi_fvm%IS_USED) THEN
72 DO n=1,ninter
73 is_inter_used_with_law151(n) = 0
74 nty =ipari(7,n)
75 inacti = ipari(22,n)
76
77 IF( (nty==7).AND.(inacti ==7)) THEN
78 multi_fvm%IS_INT18_LAW151 = .true.
79 my_size = numnod + numels
80 ii = ii + 1
81 int18_list(ii) = n
82 is_inter_used_with_law151(n) = 1
83 ENDIF
84 ENDDO
85 ENDIF
86
87 multi_fvm%S_APPEND_ARRAY = my_size
88
89 multi_fvm%NUMBER_INT18 = ii
90 ALLOCATE( multi_fvm%INT18_LIST(multi_fvm%NUMBER_INT18) ) ; multi_fvm%INT18_LIST(:) = 0
91 ALLOCATE( multi_fvm%IS_INTER_USED_WITH_LAW151(ninter) ) ; multi_fvm%IS_INTER_USED_WITH_LAW151(:) = 0
92
93
94
95
96 ALLOCATE( multi_fvm%X_APPEND(3*my_size) )
97 ALLOCATE( multi_fvm%V_APPEND(3*my_size) )
98 ALLOCATE( multi_fvm%MASS_APPEND(my_size) )
99 ALLOCATE( multi_fvm%KINET_APPEND(my_size) )
100
101
102 ALLOCATE( multi_fvm%INT18_GLOBAL_LIST(ninter) )
103
104 IF( multi_fvm%IS_INT18_LAW151 ) THEN
105 multi_fvm%INT18_LIST(1:multi_fvm%NUMBER_INT18) = int18_list(1:multi_fvm%NUMBER_INT18)
106 multi_fvm%IS_INTER_USED_WITH_LAW151(1:ninter) = is_inter_used_with_law151(1:ninter)
107 ENDIF
108
109 RETURN