47
48
49
52 use glob_therm_mod
53 use element_mod , only :nixs,nixq,nixtg
54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "mvsiz_p.inc"
62
63
64
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "param_c.inc"
68#include "vect01_c.inc"
69#include "tabsiz_c.inc"
70
71
72
73 INTEGER,INTENT(IN) :: I_INIVOL
74 INTEGER,INTENT(IN) :: NUM_INIVOL
75 TYPE (), DIMENSION(NUM_INIVOL), INTENT(INOUT) :: INIVOL
76 INTEGER,INTENT(IN) :: NG
77 INTEGER NTRACE,NTRACE0,IDC,NBCONTY,NSEG, IVOLSURF(NSURF),NUMEL_TOT,NEL
78 INTEGER,TARGET :: IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ),IXTG(NIXTG,NUMELTG)
79 INTEGER IPARG(NPARG,NGROUP),IPART_(*),
80 . IDP,IFILL,NSOLTOSF(NBCONTY,NUMNOD),
81 . NNOD2SURF,KNOD2SURF(NUMNOD+1),JMID,
82 . IPHASE(NBSUBMAT+1,NUMEL_TOT),INPHASE(NTRACE,NEL),
83 . INOD2SURF(NNOD2SURF,NUMNOD),ISOLNOD,ICUMU,SURF_TYPE,IAD_BUFR,
84 . SURF_ELTYP(NSEG),SURF_NODES(NSEG,4),NBIP(NBSUBMAT,NUMEL_TOT),
85 . IDSURF,SWIFTSURF(NSURF),SEGTOSURF(*),NSURF_INVOL,
86 . ITYP
87 my_real x(3,numnod),geo(npropg,*),xrefs(8,3,*),
88 . dis(nsurf_invol,numnod),kvol(nbsubmat,numel_tot),bufsf(*),
89 . nod_normal(3,numnod),fill_ratio
90 INTEGER, INTENT(IN) :: NBSUBMAT
91 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
92 TYPE(glob_therm_) ,intent(in) ::
93
94
95
96 INTEGER,POINTER :: pIXQ,pIXTG,pIXS
97 INTEGER NF1,I,,JHBE
98 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
99 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),
100 . IX5(MVSIZ),IX6(MVSIZ),IX7(MVSIZ),IX8(MVSIZ)
101
102 INTEGER IBID
104 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
105 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
106 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
107 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
108 . rx(mvsiz) ,ry(mvsiz),rz(mvsiz) ,s_x(mvsiz) ,
109 . s_y(mvsiz) ,s_z(mvsiz),tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
110 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),
111 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
112 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
113 . f1x(mvsiz),f1y(mvsiz),f1z(mvsiz),
114 . f2x(mvsiz),f2y(mvsiz),f2z(mvsiz)
115
117 DOUBLE PRECISION
118 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
119 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
120 . (MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
121 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
122 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ),
123 . ZD5(MVSIZ), ZD6(MVSIZ), ZD7(MVSIZ), ZD8(MVSIZ)
124
125
126
127 rbid = zero
128 ibid = 0
129
130 jhbe = iparg(23,ng)
131 jcvt = iparg(37,ng)
132
133 !
common variables required
for s*coor3 subroutine
134 nft=iparg(3,ng)
135 nf1=nft+1
136 lft=1
137 llt=nel
138 ity=ityp
139
140
141
142 IF(n2d == 0)THEN
143 IF ( isolnod == 4 )THEN
144 CALL s4coor3(x ,xrefs(1,1,nf1),ixs(1,nf1),ngl ,
145 . mat ,pid ,ix1 ,ix2 ,ix3 ,ix4 ,
146 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
147 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 )
148 ELSEIF (isolnod == 8) THEN
149 IF (jcvt == 0) THEN
150 CALL scoor3( x ,xrefs(1,1,nf1) ,ixs(1,nf1) ,geo ,mat ,pid ,ngl ,
151 . ix1 ,ix2 ,ix3
152 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
153 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
154 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
155 . rx ,ry ,rz ,s_x ,s_y ,s_z ,tx ,ty ,tz ,
156 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
157 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,rbid ,rbid,glob_therm%NINTEMP,
158 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
159 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
160 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
161 ELSE
162 CALL srcoor3( x ,xrefs(1,1,nf1) ,ixs(1,nf1) ,geo ,mat ,pid ,ngl ,jhbe ,
163 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
164 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
165 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
166 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
167 . rx ,ry ,rz ,s_x ,s_y ,s_z ,tx ,ty ,tz ,
168 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
169 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,rbid ,rbid ,glob_therm%NINTEMP,
170 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
171 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
172 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
173 ENDIF
174 ENDIF
175 ELSEIF(n2d > 0)THEN
176 IF(ityp == 7)THEN
177 DO ii = 1, nel
178 i = ii + nft
179 ix1(ii) = ixtg(1 + 1, i)
180 ix2(ii) = ixtg(1 + 2, i)
181 ix3(ii) = ixtg(1 + 3, i)
182 x1(ii) = zero
183 x2(ii) = zero
184 x3(ii) = zero
185 y1(ii) = x(2, ixtg(1 + 1, i))
186 z1(ii) = x(3, ixtg(1 + 1, i))
187 y2(ii) = x(2, ixtg(1 + 2, i))
188 z2(ii) = x(3, ixtg(1 + 2, i))
189 y3(ii) = x(2, ixtg(1 + 3, i))
190 z3(ii) = x(3, ixtg(1 + 3, i))
191 ngl(ii) = ixtg(6, i)
192 ENDDO
193 ELSEIF(ityp == 2)THEN
194 DO ii = 1, nel
195 x1(ii) = zero
196 x2(ii) = zero
197 x3(ii) = zero
198 x4(ii) = zero
199 ENDDO
200 CALL qcoor2(x, ixq(1, nf1), ngl, mat, pid,
201 . ix1, ix2, ix3, ix4,
202 . y1, y2, y3, y4,
203 . z1, z2, z3, z4,
204 . s_y, s_z, ty, tz)
205 ENDIF
206 ENDIF
207
208 NULLIFY(pixs)
209 NULLIFY(pixq)
210 NULLIFY(pixtg)
211 IF(numels>0) pixs => ixs(1,nf1)
212 IF(numelq>0) pixq => ixq(1,nf1)
213 IF(n2d>0 .AND. numeltg>0) pixtg => ixtg(1,nf1)
214
216 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
217 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
218 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
219 . idp ,x ,
220 . pixs ,ipart_(nf1),ifill ,ntrace ,ntrace0 ,dis ,nsoltosf ,
221 . nnod2surf ,inod2surf ,knod2surf ,jmid ,iphase(1,nf1) ,inphase ,kvol(1,nf1) ,
222 . surf_type ,iad_bufr ,bufsf ,nod_normal ,isolnod ,nbsubmat ,fill_ratio ,icumu ,
223 . nseg ,surf_eltyp ,surf_nodes,nbconty ,idc ,nbip(1,nf1) ,idsurf ,swiftsurf ,
224 . segtosurf ,igrsurf ,ivolsurf ,nsurf_invol,pixq ,pixtg ,ityp ,nel ,
226
227 RETURN
for(i8=*sizetab-1;i8 >=0;i8--)
type(inivol_struct_), dimension(:), allocatable inivol
subroutine ratio_fill(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, idp, x, ixs, ipart_, ifill, ntrace, ntrace0, dis, nsoltosf, nnod2surf, inod2surf, knod2surf, jmid, iphase, inphase, kvol, surf_type, iad_bufr, bufsf, nod_normal, isolnod, nbsubmat, fill_ratio, icumu, nseg, surf_eltyp, surf_nodes, nbconty, idc, nbip, idsurf, swiftsurf, segtosurf, igrsurf, ivolsurf, nsurf_invol, ixq, ixtg, ityp, nel, numel_tot, num_inivol, inivol, i_inivol)
subroutine s4coor3(x, xrefs, ixs, ngl, mxt, ngeo, ix1, ix2, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
subroutine scoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
subroutine srcoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, jhbe, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
subroutine qcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz)