4
subroutine properties(g_fg, fg, ld_fg1, ld_fg2,
5
+ g_fld, fld, ld_fld1, ld_fld2,
9
integer ld_fg1, ld_fg2, ld_fld1, ld_fld2, ld_bc1
10
double precision fg(ld_fg1,ld_fg2, *)
11
double precision fld(ld_fld1, ld_fld2, *)
13
integer g_fg, g_fld, g_bc
15
#include "mafdecls.fh"
18
c Evaluate properties on grid
20
double precision cspd2, ex, ey, sum(3)
24
c Zero accumulators and hydrodynamic fields
29
cspd2 = cspd/sqrt(2.0d00)
31
do jj = width(2) + 1, dims(2) - width(2)
33
do ii = width(1) + 1, dims(1) - width(1)
39
c Evaluate density and momentum
41
do jj = width(2) + 1, dims(2) - width(2)
51
do ii = width(1) + 1, dims(1) - width(1)
52
fld(ii,jj,1) = fld(ii,jj,1) + fg(ii,jj,i)
53
fld(ii,jj,2) = fld(ii,jj,2) + ex*fg(ii,jj,i)
54
fld(ii,jj,3) = fld(ii,jj,3) + ey*fg(ii,jj,i)
59
c Evaluate pressure and accumulate values
61
do jj = width(2) + 1, dims(2) - width(2)
62
do ii = width(1) + 1, dims(1) - width(1)
63
fld(ii,jj,2) = fld(ii,jj,2)/fld(ii,jj,1)
64
fld(ii,jj,3) = fld(ii,jj,3)/fld(ii,jj,1)
65
rtot = rtot + fld(ii,jj,1)
66
c if (bc(ii,jj).eq.1) then
67
c fld(ii,jj,2) = 0.0d00
68
c fld(ii,jj,3) = 0.0d00
69
c elseif (bc(ii,jj).eq.2) then
70
c fld(ii,jj,1) = rhobc
72
c fld(ii,jj,3) = 0.0d00
74
uxtot = uxtot + fld(ii,jj,1)*fld(ii,jj,2)
75
uytot = uytot + fld(ii,jj,1)*fld(ii,jj,3)
77
fld(ii,jj,4) = rho*rgas*tmprtr0/(1.0d00-b_vdw*rho)
82
c Sum values across processors
88
call ga_dgop(MT_DBL,sum,3,'+')