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