1 subroutine r8util_bcherm3(fherm,idimx1,idimx2,idimx3,
2 > jbcx1a,jbcx1b, jbcx2a,jbcx2b, jbcx3a,jbcx3b,
3 > zbcx1a,zbcx1b, zbcx2a,zbcx2b, zbcx3a,zbcx3b,
9 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
10 integer :: idimx1,idimx2,idimx3
11 real*8 :: fherm(0:7,idimx1,idimx2,idimx3)
13 integer :: jbcx1a,jbcx1b
14 real*8 :: zbcx1a(idimx2,idimx3)
15 real*8 :: zbcx1b(idimx2,idimx3)
17 integer :: jbcx2a,jbcx2b
18 real*8 :: zbcx2a(idimx1,idimx3)
19 real*8 :: zbcx2b(idimx1,idimx3)
21 integer :: jbcx3a,jbcx3b
22 real*8 :: zbcx3a(idimx2,idimx3)
23 real*8 :: zbcx3b(idimx2,idimx3)
25 real*8 :: x1(idimx1),x2(idimx2),x3(idimx3)
32 if((jbcx1a.eq.1).or.(jbcx1b.eq.1))
then
35 fherm(1,1,1:idimx2,1:idimx3)=zbcx1a(1:idimx2,1:idimx3)
41 > (fherm(0,2,ix,iy)-fherm(0,1,ix,iy))/zdx
47 fherm(1,idimx1,1:idimx2,1:idimx3)=zbcx1b(1:idimx2,1:idimx3)
49 zdx = x1(idimx1)-x1(idimx1-1)
52 fherm(1,idimx1,ix,iy)=
53 > (fherm(0,idimx1,ix,iy)-fherm(0,idimx1-1,ix,iy))/
61 if((jbcx2a.eq.1).or.(jbcx2b.eq.1))
then
64 fherm(2,1:idimx1,1,1:idimx3)=zbcx2a(1:idimx1,1:idimx3)
70 > (fherm(0,ix,2,iy)-fherm(0,ix,1,iy))/zdx
76 fherm(2,1:idimx1,idimx2,1:idimx3)=zbcx2b(1:idimx1,1:idimx3)
78 zdx=x2(idimx2)-x2(idimx2-1)
81 fherm(2,ix,idimx2,iy)=
82 > (fherm(0,ix,idimx2,iy)-fherm(0,ix,idimx2-1,iy))/
89 if((jbcx3a.eq.1).or.(jbcx3b.eq.1))
then
92 fherm(3,1:idimx1,1:idimx2,1)=zbcx3a(1:idimx1,1:idimx2)
98 > (fherm(0,ix,iy,2)-fherm(0,ix,iy,1))/zdx
104 fherm(3,1:idimx1,1:idimx2,idimx3)=zbcx3b(1:idimx1,1:idimx2)
106 zdx=x3(idimx3)-x3(idimx3-1)
109 fherm(3,ix,iy,idimx3)=
110 > (fherm(0,ix,iy,idimx3)-fherm(0,ix,iy,idimx3-1))/
117 end subroutine r8util_bcherm3