4 subroutine errf1(rctfine,nvar,rctcrse,mptr,mi2tot,mj2tot,
5 2 mitot,mjtot,rctflg,mibuff,mjbuff)
7 implicit double precision (a-h,o-z)
10 dimension rctfine(nvar,mitot,mjtot)
11 dimension rctcrse(nvar,mi2tot,mj2tot)
12 dimension rctflg(mibuff,mjbuff)
27 time = rnode(timemult, mptr)
28 xleft = rnode(cornxlo,mptr)
29 levm = node(nestlevel, mptr)
31 ybot = rnode(cornylo,mptr)
39 order = dble(2**(iorder+1) - 2)
41 if (.not. (edebug)) go to 20
42 write(outunit,107) mptr
43 107
format(//,
' coarsened grid values for grid ',i4)
44 do 10 jj = nghost+1, mj2tot-nghost
46 write(outunit,101) (rctcrse(1,i,j),
47 . i = nghost+1, mi2tot-nghost)
49 write(outunit,108) mptr
50 108
format(//,
' fine grid values for grid ',i4)
51 do 15 jj = nghost+1, mjtot-nghost
53 write(outunit,101) (rctfine(1,i,j),i=nghost+1,mitot-nghost)
55 101
format(
' ',40e11.3)
61 do 35 j = nghost+1, mj2tot-nghost
62 yofj = ybot + (dble(jfine) - .5d0)*hy
65 do 30 i = nghost+1, mi2tot-nghost
67 xofi = xleft + (dble(ifine) - .5d0)*hx
68 term1 = rctfine(1,ifine,jfine)
69 term2 = rctfine(1,ifine+1,jfine)
70 term3 = rctfine(1,ifine+1,jfine+1)
71 term4 = rctfine(1,ifine,jfine+1)
73 aval = (term1+term2+term3+term4)/4.d0
74 est = dabs((aval-rctcrse(1,i,j))/ order)
75 if (est .gt. errmax) errmax = est
78 102
format(
' i,j,est ',2i5,2e15.7)
80 104
format(
' ',4e15.7)
83 if (est .ge. tol)
then
86 rctcrse(1,i,j) = rflag
95 err2 = dsqrt(err2/dble((mi2tot-2*nghost)*(mj2tot-2*nghost)))
96 write(outunit,103) mptr, levm, time,errmax, err2
97 103
format(
' grid ',i4,
' level ',i4,
' time ',e12.5,
98 .
' max. error = ',e15.7,
' err2 = ',e15.7)
100 write(outunit,*)
' flagged points on coarsened grid ',
101 .
'(no ghost cells) for grid ',mptr
102 do 45 jj = nghost+1, mj2tot-nghost
104 write(outunit,106) (nint(rctcrse(1,i,j)),
105 . i=nghost+1,mi2tot-nghost)
112 do 70 j = nghost+1, mj2tot-nghost
114 do 60 i = nghost+1, mi2tot-nghost
115 if (rctcrse(1,i,j) .eq. goodpt) go to 55
119 rctflg(ifine,jfine) = badpt
120 rctflg(ifine+1,jfine) = badpt
121 rctflg(ifine,jfine+1) = badpt
122 rctflg(ifine+1,jfine+1)= badpt
131 118
format(
' on fine grid (no ghost cells) flagged points are')
133 do 56 jj = nghost+1, mjtot-nghost
136 & (nint(rctflg(i,j)),i=nghost+1,mitot-nghost)
subroutine errf1(rctfine, nvar, rctcrse, mptr, mi2tot, mj2tot, mitot, mjtot, rctflg, mibuff, mjbuff)