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) |
85 |
_RL vDiss(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vDiss(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
86 |
C I,J,K - Loop counters |
C I,J,K - Loop counters |
87 |
INTEGER i,j,k |
INTEGER i,j,k |
|
C rVelMaskOverride - Factor for imposing special surface boundary conditions |
|
|
C ( set according to free-surface condition ). |
|
|
C hFacROpen - Lopped cell factos used tohold fraction of open |
|
|
C hFacRClosed and closed cell wall. |
|
|
_RL rVelMaskOverride |
|
88 |
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 |
|
89 |
_RL ArDudrFac |
_RL ArDudrFac |
|
_RL fuFac |
|
90 |
_RL phxFac |
_RL phxFac |
91 |
_RL mtFacU |
c _RL mtFacU |
|
_RL uDvdxFac |
|
|
_RL AhDvdxFac |
|
|
_RL A4DvxxdxFac |
|
|
_RL vDvdyFac |
|
|
_RL AhDvdyFac |
|
|
_RL A4DvyydyFac |
|
|
_RL rVelDvdrFac |
|
92 |
_RL ArDvdrFac |
_RL ArDvdrFac |
|
_RL fvFac |
|
93 |
_RL phyFac |
_RL phyFac |
94 |
_RL vForcFac |
c _RL mtFacV |
|
_RL mtFacV |
|
|
_RL wVelBottomOverride |
|
95 |
LOGICAL bottomDragTerms |
LOGICAL bottomDragTerms |
96 |
LOGICAL writeDiag |
LOGICAL writeDiag |
97 |
_RL KE(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL KE(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
112 |
fVerV(1,1,kUp) = fVerV(1,1,kUp) |
fVerV(1,1,kUp) = fVerV(1,1,kUp) |
113 |
#endif |
#endif |
114 |
|
|
|
rVelMaskOverride=1. |
|
|
IF ( k .EQ. 1 ) rVelMaskOverride=freeSurfFac |
|
|
wVelBottomOverride=1. |
|
|
IF (k.EQ.Nr) wVelBottomOverride=0. |
|
115 |
writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, |
writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, |
116 |
& myTime-deltaTClock) |
& myTime-deltaTClock) |
117 |
|
|
133 |
C Initialise intermediate terms |
C Initialise intermediate terms |
134 |
DO J=1-OLy,sNy+OLy |
DO J=1-OLy,sNy+OLy |
135 |
DO I=1-OLx,sNx+OLx |
DO I=1-OLx,sNx+OLx |
|
aF(i,j) = 0. |
|
136 |
vF(i,j) = 0. |
vF(i,j) = 0. |
137 |
vrF(i,j) = 0. |
vrF(i,j) = 0. |
138 |
uCf(i,j) = 0. |
uCf(i,j) = 0. |
139 |
vCf(i,j) = 0. |
vCf(i,j) = 0. |
140 |
mT(i,j) = 0. |
c mT(i,j) = 0. |
|
pF(i,j) = 0. |
|
141 |
del2u(i,j) = 0. |
del2u(i,j) = 0. |
142 |
del2v(i,j) = 0. |
del2v(i,j) = 0. |
143 |
dStar(i,j) = 0. |
dStar(i,j) = 0. |
156 |
|
|
157 |
C-- Term by term tracer parmeters |
C-- Term by term tracer parmeters |
158 |
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. |
|
159 |
ArDudrFac = vfFacMom*1. |
ArDudrFac = vfFacMom*1. |
160 |
mTFacU = mtFacMom*1. |
c mTFacU = mtFacMom*1. |
|
fuFac = cfFacMom*1. |
|
161 |
phxFac = pfFacMom*1. |
phxFac = pfFacMom*1. |
162 |
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. |
|
163 |
ArDvdrFac = vfFacMom*1. |
ArDvdrFac = vfFacMom*1. |
164 |
mTFacV = mtFacMom*1. |
c mTFacV = mtFacMom*1. |
|
fvFac = cfFacMom*1. |
|
165 |
phyFac = pfFacMom*1. |
phyFac = pfFacMom*1. |
|
vForcFac = foFacMom*1. |
|
166 |
|
|
167 |
IF ( no_slip_bottom |
IF ( no_slip_bottom |
168 |
& .OR. bottomDragQuadratic.NE.0. |
& .OR. bottomDragQuadratic.NE.0. |
181 |
C-- Calculate open water fraction at vorticity points |
C-- Calculate open water fraction at vorticity points |
182 |
CALL MOM_CALC_HFACZ(bi,bj,k,hFacZ,r_hFacZ,myThid) |
CALL MOM_CALC_HFACZ(bi,bj,k,hFacZ,r_hFacZ,myThid) |
183 |
|
|
|
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 |
|
|
|
|
184 |
C Make local copies of horizontal flow field |
C Make local copies of horizontal flow field |
185 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
186 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
204 |
|
|
205 |
IF (momViscosity) THEN |
IF (momViscosity) THEN |
206 |
C Calculate del^2 u and del^2 v for bi-harmonic term |
C Calculate del^2 u and del^2 v for bi-harmonic term |
207 |
IF (viscA4.NE.0. |
IF ( (viscA4.NE.0. .AND. no_slip_sides) |
208 |
|
& .OR. viscA4D.NE.0. .OR. viscA4Z.NE.0. |
209 |
& .OR. viscA4Grid.NE.0. |
& .OR. viscA4Grid.NE.0. |
210 |
& .OR. viscC4leith.NE.0. |
& .OR. viscC4leith.NE.0. |
211 |
& ) THEN |
& ) THEN |