39
40
41
42 USE elbufdef_mod
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "com01_c.inc"
56#include "com04_c.inc"
57#include "com10_c.inc"
58#include "param_c.inc"
59#include "tabsiz_c.inc"
60
61
62
63 INTEGER MBUFFER, NPARTL
64 INTEGER IPARG(NPARG,*),IGEO(NPROPGI,*),IXR(NIXR,*)
65 INTEGER, DIMENSION(NUMNOD), INTENT(in) :: WEIGHT
66
67 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
68 TYPE (TH_), INTENT(IN),TARGET :: TH
69
70
71
72 LOGICAL :: BOOL
73 INTEGER :: ID,LOCAL_ID
74 INTEGER, POINTER :: ,ITHB
75 INTEGER, DIMENSION(10) :: ALREADY_DONE
76 INTEGER :: SITHBUF,SITHGRP
77
78
79
80
81
82
83 already_done(1:10) = 0
84
86 IF(nthgrp01(
id)/=0)
THEN
88 ithgr => th%ITHGRPA(1)
89 ithb=> th%ITHBUFA(1)
90 sithbuf = th%SITHBUFA
91 ENDIF
93 ithgr => th%ITHGRPB(1)
94 ithb=> th%ITHBUFB(1)
95 sithbuf = th%SITHBUFB
96 ENDIF
98 ithgr => th%ITHGRPC(1)
99 ithb =>th%ITHBUFC(1)
100 sithbuf = th%SITHBUFC
101 ENDIF
103 ithgr => th%ITHGRPD(1)
104 ithb => th%ITHBUFD(1)
105 sithbuf = th%SITHBUFD
106 ENDIF
108 ithgr => th%ITHGRPE(1)
109 ithb => th%ITHBUFE(1)
110 sithbuf = th%SITHBUFE
111 ENDIF
113 ithgr => th%ITHGRPF(1)
114 ithb => th%ITHBUFF(1)
115 sithbuf = th%SITHBUFF
116 ENDIF
118 ithgr => th%ITHGRPG(1)
119 ithb => th%ITHBUFG(1)
120 sithbuf = th%SITHBUFG
121 ENDIF
123 ithgr => th%ITHGRPH(1)
124 ithb => th%ITHBUFH(1)
125 sithbuf = th%SITHBUFH
126 ENDIF
128 ithgr => th%ITHGRPI(1)
129 ithb => th%ITHBUFI(1)
130 sithbuf = th%SITHBUFI
131 ENDIF
133 CALL init_th(iparg,ithb,elbuf_tab,igeo,ixr,
134 . ithgr,nthgrp1(
id),
id,weight,sithbuf)
135 ENDIF
136 ENDDO
137
140 CALL init_th(iparg,th%ITHBUF,elbuf_tab,igeo,ixr,
141 . th%ITHGRP,nthgrp,
id,weight,th%SITHBUF)
142
144 bool=.false.
145 IF(abfile(
id)/=0)
THEN
146 IF(
id==2.OR.
id==4.OR.
id==5.OR.
id==6.OR.
id==7.OR.
id==8.OR.
id==9)
THEN
147 local_id = 1
148 IF(already_done(local_id)==0) THEN
149 ithgr => th%ITHGRPA(1)
150 ithb=> th%ITHBUFA(1)
151 bool=.true.
152 ENDIF
153
155 local_id = 2
156 IF(already_done(local_id)==0) THEN
157 ithgr => th%ITHGRPB(1)
158 ithb=> th%ITHBUFB(1)
159 bool=.true.
160 ENDIF
161 ENDIF
162 ENDIF
163 IF(bool.EQV..true.) THEN
164 already_done(local_id)=1
165 CALL init_th(iparg,ithb,elbuf_tab,igeo,ixr,
166 . ithgr,nthgrp1(
id),
id,weight,th%SITHBUF)
167 ENDIF
168 ENDDO
169
170
171 RETURN
subroutine init_th(iparg, ithbuf, elbuf_tab, igeo, ixr, ithgrp, nthgrp2, id, weight, sithbuf)