4 |
#include "GMREDI_OPTIONS.h" |
#include "GMREDI_OPTIONS.h" |
5 |
|
|
6 |
CStartOfInterface |
CStartOfInterface |
7 |
SUBROUTINE GMREDI_SLOPE_PSI_B( |
SUBROUTINE GMREDI_SLOPE_PSI( |
8 |
I dSigmaDrW,dSigmaDrS, |
I dSigmaDrW,dSigmaDrS, |
9 |
I depthZ,K, |
I depthZ,K, |
10 |
U SlopeX, SlopeY, |
U SlopeX, SlopeY, |
11 |
O taperX, taperY, |
O taperX, taperY, |
12 |
I bi,bj, myThid ) |
I bi,bj, myThid ) |
13 |
C /==========================================================\ |
C /==========================================================\ |
14 |
C | SUBROUTINE GMREDI_SLOPE_PSI_B | |
C | SUBROUTINE GMREDI_SLOPE_PSI | |
15 |
C | o Calculate slopes for use in GM/Redi tensor | |
C | o Calculate slopes for use in GM/Redi tensor | |
16 |
C |==========================================================| |
C |==========================================================| |
17 |
C | On entry: | |
C | On entry: | |
251 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
252 |
|
|
253 |
Smod = abs(SlopeX(i,j)) |
Smod = abs(SlopeX(i,j)) |
254 |
taperX(i,j)=0.5*(1.+tanh( (GM_Scrit-Smod)/GM_Sd )) |
taperX(i,j)=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) |
255 |
Smod = abs(SlopeY(i,j)) |
Smod = abs(SlopeY(i,j)) |
256 |
taperY(i,j)=0.5*(1.+tanh( (GM_Scrit-Smod)/GM_Sd )) |
taperY(i,j)=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) |
257 |
|
|
258 |
ENDDO |
ENDDO |
259 |
ENDDO |
ENDDO |
264 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
265 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
266 |
|
|
267 |
Cspd=2. |
Cspd=2. _d 0 |
268 |
Lrho=100.e3 |
Lrho=100. _d 3 |
269 |
if (FCori(i,j,bi,bj).NE.0.) Lrho=Cspd/abs(Fcori(i,j,bi,bj)) |
if (fCori(i,j,bi,bj).NE.0.) Lrho=Cspd/abs(fCori(i,j,bi,bj)) |
270 |
Lrho=min(Lrho , 100. _d 3) |
Lrho=min(Lrho , 100. _d 3) |
271 |
Lrho=max(Lrho , 15. _d 3) |
Lrho=max(Lrho , 15. _d 3) |
272 |
|
|
273 |
Smod = abs(SlopeX(i,j)) |
Smod = abs(SlopeX(i,j)) |
274 |
f1=0.5*(1.+tanh( (GM_Scrit-Smod)/GM_Sd )) |
f1=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) |
275 |
if (Smod.NE.0.) then |
if (Smod.NE.0.) then |
276 |
Rnondim=depthZ/(Lrho*Smod) |
Rnondim=depthZ/(Lrho*Smod) |
277 |
else |
else |
278 |
Rnondim=0. |
Rnondim=0. |
279 |
endif |
endif |
280 |
f2=0.5*(1.+sin( fpi*(Rnondim-0.5))) |
f2=op5*( 1. _d 0 + sin( fpi*(Rnondim-op5))) |
281 |
taperX(i,j)=f1*f2 |
taperX(i,j)=f1*f2 |
282 |
|
|
283 |
Smod = abs(SlopeY(i,j)) |
Smod = abs(SlopeY(i,j)) |
284 |
f1=0.5*(1.+tanh( (GM_Scrit-Smod)/GM_Sd )) |
f1=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) |
285 |
if (Smod.NE.0.) then |
if (Smod.NE.0.) then |
286 |
Rnondim=depthZ/(Lrho*Smod) |
Rnondim=depthZ/(Lrho*Smod) |
287 |
else |
else |
288 |
Rnondim=0. |
Rnondim=0. |
289 |
endif |
endif |
290 |
f2=0.5*(1.+sin( fpi*(Rnondim-0.5))) |
f2=op5*( 1. _d 0 + sin( fpi*(Rnondim-op5))) |
291 |
taperY(i,j)=f1*f2 |
taperY(i,j)=f1*f2 |
292 |
|
|
293 |
ENDDO |
ENDDO |