34
35
36
37
38
39
40
41
42
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com01_c.inc"
53#include "com04_c.inc"
54#include "tabsiz_c.inc"
55
56
57
58 INTEGER :: N,I,NUMBER_MAIN_NODE,IS_SMS_AVAILABLE
59 INTEGER, DIMENSION(2) :: MAIN_NODE
60 INTEGER, DIMENSION(NJOINT) :: NUMBER_NODE
61 INTEGER, DIMENSION(:), ALLOCATABLE :: NODE_WEIGHT
62
64 IF(njoint>0) THEN
65 number_node(1:njoint) = 0
66
68
69 DO n=1,njoint
70
73
74 ALLOCATE(
cyl_join(n)%COMM_MPI%SIZE_SR(nspmd) )
75 cyl_join(n)%COMM_MPI%SIZE_SR(1:nspmd) = 0
76 ! ------------------------------
77 IF(number_node(n)>0) THEN
78
79 cyl_join(n)%NUMBER_NODE = number_node(n)
80
82
84
87
90
93
94
95 ALLOCATE( node_weight(
cyl_join(n)%NUMBER_NODE ) )
100 ENDIF
101 ENDDO
103 DO i=1,
cyl_join(n)%NUMBER_NODE_WEIGHT
104 cyl_join(n)%NODE_WEIGHT(i) = node_weight(i)
105 ENDDO
106 DEALLOCATE( node_weight )
107
108 ENDIF
109
110
112
113 ALLOCATE(
cyl_join(n)%MAIN_NODE(2) )
115 cyl_join(n)%MAIN_NODE(1:2) = main_node(1:2)
116
117 number_main_node = 0
118 DO i=1,2
119 IF(
cyl_join(n)%MAIN_NODE(i)>0) number_main_node = number_main_node + 1
120 ENDDO
121
122 cyl_join(n)%NUMBER_MAIN_NODE = number_main_node
123 ENDDO
124
125 is_sms_available = 0
127 IF(is_sms_available==0) THEN
129 ELSE
131 ENDIF
133
134 ENDIF
135
136 RETURN
type(joint_type), dimension(:), allocatable cyl_join
integer, dimension(:), allocatable ljoint
void read_i_c(int *w, int *len)