47 sdeg_mat, nm, cs_loc, cs_nnz_loc, u1, u0, u_1,&
49 xr_mpgm,yr_mpgm,zr_mpgm,&
50 max_u, max_v, max_a, max_o)
55 integer*4 :: nnod_loc, ne_loc, cs_nnz_loc, nm
56 integer*4 :: nn, im, imon, iaz
57 integer*4 :: i, j, k, is, in, id
58 integer*4 :: ie, ielem
59 integer*4,
dimension(0:cs_nnz_loc) :: cs_loc
60 integer*4,
dimension(nm) :: sdeg_mat
61 integer*4,
dimension(ne_loc) :: local_el_num
63 real*8 :: uxm, uym, uzm
64 real*8 :: vxm, vym, vzm
65 real*8 :: axm, aym, azm
68 real*8,
dimension(:),
allocatable :: ct,ww
69 real*8,
dimension(:,:),
allocatable :: dd
70 real*8,
dimension(:,:,:),
allocatable :: ux_el, uy_el, uz_el
72 real*8,
dimension(3*nnod_loc) :: u_1,u0,u1
74 integer*4 :: imonpgm, nmonitpgm,ndt_monitpgm
75 integer*4,
dimension(nmonitpgm) :: node_mpgm
76 integer*4,
dimension(nmonitpgm) :: elem_mpgm
78 real*8 :: rotang_monitpgm
79 real*8 :: upm,unm,vpm,vnm,apm,anm
80 real*8,
dimension(nmonitpgm) :: xr_mpgm,yr_mpgm,zr_mpgm
81 real*8,
dimension(nmonitpgm,9) :: max_u,max_v,max_a
82 real*8,
dimension(nmonitpgm,3) :: max_o
85 real*8 :: variable1m,variable2m,variable3m
86 real*8 :: variable4m,variable5m,variable6m
88 real*8,
dimension(3*nnod_loc) :: omega
90 real*8,
dimension(:,:,:),
allocatable :: variable1_el,variable2_el,variable3_el
91 real*8,
dimension(:,:,:),
allocatable :: variable4_el,variable5_el,variable6_el
95 upm = 0.0d0; unm = 0.0d0; vpm = 0.0d0; vnm = 0.0d0; apm = 0.0d0; anm = 0.0d0
98 do imonpgm = 1,nmonitpgm
100 ielem = elem_mpgm(imonpgm)
105 im = cs_loc(cs_loc(ie -1) +0)
107 allocate(ct(nn),ww(nn),dd(nn,nn))
108 allocate(ux_el(nn,nn,nn),uy_el(nn,nn,nn),uz_el(nn,nn,nn))
109 allocate(variable1_el(nn,nn,nn),variable2_el(nn,nn,nn),variable3_el(nn,nn,nn))
110 allocate(variable4_el(nn,nn,nn),variable5_el(nn,nn,nn),variable6_el(nn,nn,nn))
116 is = nn*nn*(k -1) +nn*(j -1) +i
117 in = cs_loc(cs_loc(ie -1) + is)
120 ux_el(i,j,k) = u1(iaz)
122 uy_el(i,j,k) = u1(iaz)
124 uz_el(i,j,k) = u1(iaz)
130 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),uxm)
132 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),uym)
134 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),uzm)
139 is = nn*nn*(k -1) +nn*(j -1) +i
140 in = cs_loc(cs_loc(ie -1) + is)
143 ux_el(i,j,k) = (3.0d0*u1(iaz) - 4.0d0*u0(iaz) + 1.0d0*u_1(iaz)) / (2.0d0*dt)
145 uy_el(i,j,k) = (3.0d0*u1(iaz) - 4.0d0*u0(iaz) + 1.0d0*u_1(iaz)) / (2.0d0*dt)
147 uz_el(i,j,k) = (3.0d0*u1(iaz) - 4.0d0*u0(iaz) + 1.0d0*u_1(iaz)) / (2.0d0*dt)
153 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),vxm)
155 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),vym)
157 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),vzm)
162 is = nn*nn*(k -1) +nn*(j -1) +i
163 in = cs_loc(cs_loc(ie -1) + is)
166 ux_el(i,j,k) = (u1(iaz) -2.0*u0(iaz) +u_1(iaz)) / dt**2
168 uy_el(i,j,k) = (u1(iaz) -2.0*u0(iaz) +u_1(iaz)) / dt**2
170 uz_el(i,j,k) = (u1(iaz) -2.0*u0(iaz) +u_1(iaz)) / dt**2
176 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),axm)
178 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),aym)
180 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),azm)
182 if (dabs(uxm).lt.1.0e-30) uxm = 0.0e+00
183 if (dabs(uym).lt.1.0e-30) uym = 0.0e+00
184 if (dabs(uzm).lt.1.0e-30) uzm = 0.0e+00
185 if (dabs(vxm).lt.1.0e-30) vxm = 0.0e+00
186 if (dabs(vym).lt.1.0e-30) vym = 0.0e+00
187 if (dabs(vzm).lt.1.0e-30) vzm = 0.0e+00
188 if (dabs(axm).lt.1.0e-30) axm = 0.0e+00
189 if (dabs(aym).lt.1.0e-30) aym = 0.0e+00
190 if (dabs(azm).lt.1.0e-30) azm = 0.0e+00
192 if (rotang_monitpgm.ne.0.0d0)
then
197 upm = uxm * cos(rotang_monitpgm) + uym * sin(rotang_monitpgm)
198 unm = -uxm * sin(rotang_monitpgm) + uym * cos(rotang_monitpgm)
199 vpm = vxm * cos(rotang_monitpgm) + vym * sin(rotang_monitpgm)
200 vnm = -vxm * sin(rotang_monitpgm) + vym * cos(rotang_monitpgm)
201 apm = axm * cos(rotang_monitpgm) + aym * sin(rotang_monitpgm)
202 anm = -axm * sin(rotang_monitpgm) + aym * cos(rotang_monitpgm)
212 if (dabs(uxm).gt.max_u(imonpgm,1)) max_u(imonpgm,1) = dabs(uxm)
213 if (dabs(uym).gt.max_u(imonpgm,2)) max_u(imonpgm,2) = dabs(uym)
214 if (dabs(uzm).gt.max_u(imonpgm,3)) max_u(imonpgm,3) = dabs(uzm)
216 tmp = dsqrt(dabs(uxm*uym))
217 if (tmp.gt.max_u(imonpgm,4)) max_u(imonpgm,4) = tmp
219 tmp = ((dabs(uxm)+dabs(uym))/2)
220 if (tmp.gt.max_u(imonpgm,5)) max_u(imonpgm,5) = tmp
222 tmp = (dabs(uxm*uym*uzm))**(0.3333333)
223 if (tmp.gt.max_u(imonpgm,6)) max_u(imonpgm,6) = tmp
225 tmp = ((dabs(uxm)+dabs(uym)+dabs(uzm))/3)
226 if (tmp.gt.max_u(imonpgm,7)) max_u(imonpgm,7) = tmp
228 tmp = dsqrt((uxm)**2 + (uym)**2)
229 if (tmp.gt.max_u(imonpgm,8)) max_u(imonpgm,8) = tmp
231 tmp = dsqrt((uxm)**2 + (uym)**2 + (uzm)**2)
232 if (tmp.gt.max_u(imonpgm,9)) max_u(imonpgm,9) = tmp
235 if (dabs(vxm).gt.max_v(imonpgm,1)) max_v(imonpgm,1) = dabs(vxm)
236 if (dabs(vym).gt.max_v(imonpgm,2)) max_v(imonpgm,2) = dabs(vym)
237 if (dabs(vzm).gt.max_v(imonpgm,3)) max_v(imonpgm,3) = dabs(vzm)
239 tmp = dsqrt(dabs(vxm*vym))
240 if (tmp.gt.max_v(imonpgm,4)) max_v(imonpgm,4) = tmp
242 tmp = ((dabs(vxm)+dabs(vym))/2)
243 if (tmp.gt.max_v(imonpgm,5)) max_v(imonpgm,5) = tmp
245 tmp = (dabs(vxm*vym*vzm))**(0.3333333)
246 if (tmp.gt.max_v(imonpgm,6)) max_v(imonpgm,6) = tmp
248 tmp = ((dabs(vxm)+dabs(vym)+dabs(vzm))/3)
249 if (tmp.gt.max_v(imonpgm,7)) max_v(imonpgm,7) = tmp
251 tmp = dsqrt((vxm)**2 + (vym)**2)
252 if (tmp.gt.max_v(imonpgm,8)) max_v(imonpgm,8) = tmp
254 tmp = dsqrt((vxm)**2 + (vym)**2 + (vzm)**2)
255 if (tmp.gt.max_v(imonpgm,9)) max_v(imonpgm,9) = tmp
257 if (dabs(axm).gt.max_a(imonpgm,1)) max_a(imonpgm,1) = dabs(axm)
258 if (dabs(aym).gt.max_a(imonpgm,2)) max_a(imonpgm,2) = dabs(aym)
259 if (dabs(azm).gt.max_a(imonpgm,3)) max_a(imonpgm,3) = dabs(azm)
261 tmp = dsqrt(dabs(axm*aym))
262 if (tmp.gt.max_a(imonpgm,4)) max_a(imonpgm,4) = tmp
264 tmp = ((dabs(axm)+dabs(aym))/2)
265 if (tmp.gt.max_a(imonpgm,5)) max_a(imonpgm,5) = tmp
267 tmp = (dabs(axm*aym*azm))**(0.3333333)
268 if (tmp.gt.max_a(imonpgm,6)) max_a(imonpgm,6) = tmp
270 tmp = ((dabs(axm)+dabs(aym)+dabs(azm))/3)
271 if (tmp.gt.max_a(imonpgm,7)) max_a(imonpgm,7) = tmp
273 tmp = dsqrt((axm)**2 + (aym)**2)
274 if (tmp.gt.max_a(imonpgm,8)) max_a(imonpgm,8) = tmp
276 tmp = dsqrt((axm)**2 + (aym)**2 + (azm)**2)
277 if (tmp.gt.max_a(imonpgm,9)) max_a(imonpgm,9) = tmp
286 is = nn*nn*(k -1) +nn*(j -1) +i
287 in = cs_loc(cs_loc(ie -1) + is)
290 variable1_el(i,j,k) = omega(iaz)
292 variable2_el(i,j,k) = omega(iaz)
294 variable3_el(i,j,k) = omega(iaz)
301 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),variable1m)
304 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),variable2m)
307 xr_mpgm(imonpgm),yr_mpgm(imonpgm),zr_mpgm(imonpgm),variable3m)
309 if (dabs(variable1m).lt.1.0e-30) variable1m = 0.0e+00
310 if (dabs(variable2m).lt.1.0e-30) variable2m = 0.0e+00
311 if (dabs(variable3m).lt.1.0e-30) variable3m = 0.0e+00
312 if (dabs(variable1m).gt.max_o(imonpgm,1)) max_o(imonpgm,1) = dabs(variable1m)
313 if (dabs(variable2m).gt.max_o(imonpgm,2)) max_o(imonpgm,2) = dabs(variable2m)
314 if (dabs(variable3m).gt.max_o(imonpgm,3)) max_o(imonpgm,3) = dabs(variable3m)
318 deallocate(ux_el,uy_el,uz_el)
319 deallocate(variable1_el,variable2_el,variable3_el)
320 deallocate(variable4_el,variable5_el,variable6_el)