51 |
INTEGER bi,bj,k |
INTEGER bi,bj,k |
52 |
INTEGER iMin,iMax,jMin,jMax |
INTEGER iMin,iMax,jMin,jMax |
53 |
INTEGER advectionScheme |
INTEGER advectionScheme |
54 |
_RL deltaTarg |
_RL deltaTarg(Nr) |
55 |
_RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
56 |
_RL a5d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL a5d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
57 |
_RL b5d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL b5d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
73 |
_RL mskM, mskP, maskM2, maskP1 |
_RL mskM, mskP, maskM2, maskP1 |
74 |
CEOP |
CEOP |
75 |
|
|
76 |
IF ( k.GT.Nr .OR. k.LT.2 ) RETURN |
C-- process interior interface only: |
77 |
|
IF ( k.GT.1 .AND. k.LE.Nr ) THEN |
78 |
|
|
79 |
km2=MAX(1,k-2) |
km2=MAX(1,k-2) |
80 |
kp1=MIN(Nr,k+1) |
kp1=MIN(Nr,k+1) |
88 |
C-- Add centered & upwind contributions |
C-- Add centered & upwind contributions |
89 |
DO j=jMin,jMax |
DO j=jMin,jMax |
90 |
DO i=iMin,iMax |
DO i=iMin,iMax |
91 |
rCenter= 0.5 _d 0 *deltaTarg*rTrans(i,j) |
rCenter= 0.5 _d 0 *rTrans(i,j)*recip_rA(i,j,bi,bj)*rkFac |
|
& *recip_rA(i,j,bi,bj)*rkFac |
|
92 |
mskM = maskC(i,j,km2,bi,bj)*maskM2 |
mskM = maskC(i,j,km2,bi,bj)*maskM2 |
93 |
mskP = maskC(i,j,kp1,bi,bj)*maskP1 |
mskP = maskC(i,j,kp1,bi,bj)*maskP1 |
94 |
rC4km = oneSixth*rCenter*mskM |
rC4km = oneSixth*rCenter*mskM |
105 |
ENDIF |
ENDIF |
106 |
a5d(i,j,k) = a5d(i,j,k) |
a5d(i,j,k) = a5d(i,j,k) |
107 |
& - (rC4km - rU3km) |
& - (rC4km - rU3km) |
108 |
|
& *deltaTarg(k) |
109 |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
110 |
b5d(i,j,k) = b5d(i,j,k) |
b5d(i,j,k) = b5d(i,j,k) |
111 |
& + (rCenter + rC4km - rUpwind - rU3km) |
& + (rCenter + rC4km - rUpwind - rU3km) |
112 |
|
& *deltaTarg(k) |
113 |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
114 |
c5d(i,j,k) = c5d(i,j,k) |
c5d(i,j,k) = c5d(i,j,k) |
115 |
& + (rCenter + rC4kp + rUpwind + rU3kp) |
& + (rCenter + rC4kp + rUpwind + rU3kp) |
116 |
|
& *deltaTarg(k) |
117 |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
118 |
d5d(i,j,k) = d5d(i,j,k) |
d5d(i,j,k) = d5d(i,j,k) |
119 |
& - (rC4kp + rU3kp) |
& - (rC4kp + rU3kp) |
120 |
|
& *deltaTarg(k) |
121 |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
& *recip_hFacC(i,j,k,bi,bj)*recip_drF(k) |
122 |
b5d(i,j,k-1) = b5d(i,j,k-1) |
b5d(i,j,k-1) = b5d(i,j,k-1) |
123 |
& + (rC4km - rU3km) |
& + (rC4km - rU3km) |
124 |
|
& *deltaTarg(k-1) |
125 |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
126 |
c5d(i,j,k-1) = c5d(i,j,k-1) |
c5d(i,j,k-1) = c5d(i,j,k-1) |
127 |
& - (rCenter + rC4km - rUpwind - rU3km) |
& - (rCenter + rC4km - rUpwind - rU3km) |
128 |
|
& *deltaTarg(k-1) |
129 |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
130 |
d5d(i,j,k-1) = d5d(i,j,k-1) |
d5d(i,j,k-1) = d5d(i,j,k-1) |
131 |
& - (rCenter + rC4kp + rUpwind + rU3kp) |
& - (rCenter + rC4kp + rUpwind + rU3kp) |
132 |
|
& *deltaTarg(k-1) |
133 |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
134 |
e5d(i,j,k-1) = e5d(i,j,k-1) |
e5d(i,j,k-1) = e5d(i,j,k-1) |
135 |
& + (rC4kp + rU3kp) |
& + (rC4kp + rU3kp) |
136 |
|
& *deltaTarg(k-1) |
137 |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
& *recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1) |
138 |
ENDDO |
ENDDO |
139 |
ENDDO |
ENDDO |
140 |
|
|
141 |
|
C-- process interior interface only: end |
142 |
|
ENDIF |
143 |
|
|
144 |
RETURN |
RETURN |
145 |
END |
END |