38 |
_RL viscA_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL viscA_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
39 |
_RL ASmag, smagfac |
_RL ASmag, smagfac |
40 |
_RL vg2Min, vg2Max, AlinMax, AlinMin |
_RL vg2Min, vg2Max, AlinMax, AlinMin |
41 |
|
_RL lenA2, lenAz2 |
42 |
|
|
43 |
IF (deltaTmom.NE.0.) THEN |
IF (deltaTmom.NE.0.) THEN |
44 |
vg2Min=viscAhGridMin/deltaTmom |
vg2Min=viscAhGridMin/deltaTmom |
53 |
DO j=2-Oly,sNy+Oly-1 |
DO j=2-Oly,sNy+Oly-1 |
54 |
DO i=2-Olx,sNx+Olx-1 |
DO i=2-Olx,sNx+Olx-1 |
55 |
IF (viscC2smag.NE.0.) THEN |
IF (viscC2smag.NE.0.) THEN |
56 |
Asmag=smagfac*rA(i,j,bi,bj) |
C Geometric Mean is used as length scale |
57 |
|
lenA2=(2*rA(i,j,bi,bj)/ |
58 |
|
& (dxF(I,J,bi,bj)+dyF(I,J,bi,bj)))**2 |
59 |
|
|
60 |
|
Asmag=smagfac*lenA2 |
61 |
& *sqrt(tension(i,j)**2 |
& *sqrt(tension(i,j)**2 |
62 |
& +0.25*(strain(i+1, j )**2+strain( i ,j+1)**2 |
& +0.25*(strain(i+1, j )**2+strain( i ,j+1)**2 |
63 |
& +strain(i-1, j )**2+strain( i ,j-1)**2)) |
& +strain(i-1, j )**2+strain( i ,j-1)**2)) |
64 |
viscA_t(i,j)=min(viscAhMax,max(viscAt,Asmag)) |
viscA_t(i,j)=min(viscAhMax,max(viscAt,Asmag)) |
65 |
|
|
66 |
IF (vg2Max.GT.0.) THEN |
IF (vg2Max.GT.0.) THEN |
67 |
AlinMax=vg2Max*(rA ( i , j ,bi,bj)) |
AlinMax=vg2Max*lenA2 |
68 |
viscA_t(i,j)=min(AlinMax,viscA_t(i,j)) |
viscA_t(i,j)=min(AlinMax,viscA_t(i,j)) |
69 |
ENDIF |
ENDIF |
70 |
AlinMin=vg2Min*(rA ( i , j ,bi,bj)) |
AlinMin=vg2Min*lenA2 |
71 |
viscA_t(i,j)=max(AlinMin,viscA_t(i,j)) |
viscA_t(i,j)=max(AlinMin,viscA_t(i,j)) |
72 |
|
|
73 |
Asmag=smagfac*rAz(i,j,bi,bj) |
C Geometric Mean is used as length scale |
74 |
|
lenAz2=(2*rAz(i,j,bi,bj)/ |
75 |
|
& (dxV(I,J,bi,bj)+dyU(I,J,bi,bj)))**2 |
76 |
|
Asmag=smagfac*lenAz2 |
77 |
& *sqrt(strain(i,j)**2 |
& *sqrt(strain(i,j)**2 |
78 |
& +0.25*(tension( i , j )**2+tension( i ,j+1)**2 |
& +0.25*(tension( i , j )**2+tension( i ,j+1)**2 |
79 |
& +tension(i+1, j )**2+tension(i+1,j+1)**2)) |
& +tension(i+1, j )**2+tension(i+1,j+1)**2)) |
80 |
viscA_s(i,j)=min(viscAhMax,max(viscAs,Asmag)) |
viscA_s(i,j)=min(viscAhMax,max(viscAs,Asmag)) |
81 |
|
|
82 |
IF (vg2Max.GT.0.) THEN |
IF (vg2Max.GT.0.) THEN |
83 |
AlinMax=vg2Max*(rAz( i , j ,bi,bj)) |
AlinMax=vg2Max*lenAz2 |
84 |
viscA_s(i,j)=min(AlinMax,viscA_s(i,j)) |
viscA_s(i,j)=min(AlinMax,viscA_s(i,j)) |
85 |
ENDIF |
ENDIF |
86 |
AlinMin=vg2Min*(rAz( i , j ,bi,bj)) |
AlinMin=vg2Min*lenAz2 |
87 |
viscA_s(i,j)=max(AlinMin,viscA_s(i,j)) |
viscA_s(i,j)=max(AlinMin,viscA_s(i,j)) |
88 |
|
|
89 |
ELSE |
ELSE |