66 |
EXTERNAL DIFFERENT_MULTIPLE |
EXTERNAL DIFFERENT_MULTIPLE |
67 |
|
|
68 |
C == Local variables == |
C == Local variables == |
|
_RL aF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
69 |
_RL vF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
70 |
_RL vrF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vrF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
71 |
_RL uCf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL uCf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
72 |
_RL vCf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vCf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
73 |
_RL mT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
c _RL mT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
_RL pF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
74 |
_RL del2u(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL del2u(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
75 |
_RL del2v(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL del2v(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
76 |
_RL tension(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL tension(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
77 |
_RL strain(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL strain(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
78 |
_RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
79 |
_RS r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RS r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
_RS xA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RS yA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
80 |
_RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
81 |
_RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
82 |
_RL dStar(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL dStar(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
91 |
C hFacRClosed and closed cell wall. |
C hFacRClosed and closed cell wall. |
92 |
_RL rVelMaskOverride |
_RL rVelMaskOverride |
93 |
C xxxFac - On-off tracer parameters used for switching terms off. |
C xxxFac - On-off tracer parameters used for switching terms off. |
|
_RL uDudxFac |
|
|
_RL AhDudxFac |
|
|
_RL A4DuxxdxFac |
|
|
_RL vDudyFac |
|
|
_RL AhDudyFac |
|
|
_RL A4DuyydyFac |
|
|
_RL rVelDudrFac |
|
94 |
_RL ArDudrFac |
_RL ArDudrFac |
|
_RL fuFac |
|
95 |
_RL phxFac |
_RL phxFac |
96 |
_RL mtFacU |
c _RL mtFacU |
|
_RL uDvdxFac |
|
|
_RL AhDvdxFac |
|
|
_RL A4DvxxdxFac |
|
|
_RL vDvdyFac |
|
|
_RL AhDvdyFac |
|
|
_RL A4DvyydyFac |
|
|
_RL rVelDvdrFac |
|
97 |
_RL ArDvdrFac |
_RL ArDvdrFac |
|
_RL fvFac |
|
98 |
_RL phyFac |
_RL phyFac |
99 |
_RL vForcFac |
c _RL mtFacV |
|
_RL mtFacV |
|
100 |
_RL wVelBottomOverride |
_RL wVelBottomOverride |
101 |
LOGICAL bottomDragTerms |
LOGICAL bottomDragTerms |
102 |
LOGICAL writeDiag |
LOGICAL writeDiag |
143 |
C Initialise intermediate terms |
C Initialise intermediate terms |
144 |
DO J=1-OLy,sNy+OLy |
DO J=1-OLy,sNy+OLy |
145 |
DO I=1-OLx,sNx+OLx |
DO I=1-OLx,sNx+OLx |
|
aF(i,j) = 0. |
|
146 |
vF(i,j) = 0. |
vF(i,j) = 0. |
147 |
vrF(i,j) = 0. |
vrF(i,j) = 0. |
148 |
uCf(i,j) = 0. |
uCf(i,j) = 0. |
149 |
vCf(i,j) = 0. |
vCf(i,j) = 0. |
150 |
mT(i,j) = 0. |
c mT(i,j) = 0. |
|
pF(i,j) = 0. |
|
151 |
del2u(i,j) = 0. |
del2u(i,j) = 0. |
152 |
del2v(i,j) = 0. |
del2v(i,j) = 0. |
153 |
dStar(i,j) = 0. |
dStar(i,j) = 0. |
166 |
|
|
167 |
C-- Term by term tracer parmeters |
C-- Term by term tracer parmeters |
168 |
C o U momentum equation |
C o U momentum equation |
|
uDudxFac = afFacMom*1. |
|
|
AhDudxFac = vfFacMom*1. |
|
|
A4DuxxdxFac = vfFacMom*1. |
|
|
vDudyFac = afFacMom*1. |
|
|
AhDudyFac = vfFacMom*1. |
|
|
A4DuyydyFac = vfFacMom*1. |
|
|
rVelDudrFac = afFacMom*1. |
|
169 |
ArDudrFac = vfFacMom*1. |
ArDudrFac = vfFacMom*1. |
170 |
mTFacU = mtFacMom*1. |
c mTFacU = mtFacMom*1. |
|
fuFac = cfFacMom*1. |
|
171 |
phxFac = pfFacMom*1. |
phxFac = pfFacMom*1. |
172 |
C o V momentum equation |
C o V momentum equation |
|
uDvdxFac = afFacMom*1. |
|
|
AhDvdxFac = vfFacMom*1. |
|
|
A4DvxxdxFac = vfFacMom*1. |
|
|
vDvdyFac = afFacMom*1. |
|
|
AhDvdyFac = vfFacMom*1. |
|
|
A4DvyydyFac = vfFacMom*1. |
|
|
rVelDvdrFac = afFacMom*1. |
|
173 |
ArDvdrFac = vfFacMom*1. |
ArDvdrFac = vfFacMom*1. |
174 |
mTFacV = mtFacMom*1. |
c mTFacV = mtFacMom*1. |
|
fvFac = cfFacMom*1. |
|
175 |
phyFac = pfFacMom*1. |
phyFac = pfFacMom*1. |
|
vForcFac = foFacMom*1. |
|
176 |
|
|
177 |
IF ( no_slip_bottom |
IF ( no_slip_bottom |
178 |
& .OR. bottomDragQuadratic.NE.0. |
& .OR. bottomDragQuadratic.NE.0. |
191 |
C-- Calculate open water fraction at vorticity points |
C-- Calculate open water fraction at vorticity points |
192 |
CALL MOM_CALC_HFACZ(bi,bj,k,hFacZ,r_hFacZ,myThid) |
CALL MOM_CALC_HFACZ(bi,bj,k,hFacZ,r_hFacZ,myThid) |
193 |
|
|
|
C---- Calculate common quantities used in both U and V equations |
|
|
C Calculate tracer cell face open areas |
|
|
DO j=1-OLy,sNy+OLy |
|
|
DO i=1-OLx,sNx+OLx |
|
|
xA(i,j) = _dyG(i,j,bi,bj) |
|
|
& *drF(k)*_hFacW(i,j,k,bi,bj) |
|
|
yA(i,j) = _dxG(i,j,bi,bj) |
|
|
& *drF(k)*_hFacS(i,j,k,bi,bj) |
|
|
ENDDO |
|
|
ENDDO |
|
|
|
|
194 |
C Make local copies of horizontal flow field |
C Make local copies of horizontal flow field |
195 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
196 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |