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: | |
265 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
266 |
|
|
267 |
Cspd=2. _d 0 |
Cspd=2. _d 0 |
268 |
Lrho=100. _d 0 |
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 |
|
|
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=op5*(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=op5*(1.+sin( fpi*(Rnondim-op5))) |
f2=op5*( 1. _d 0 + sin( fpi*(Rnondim-op5))) |
291 |
taperY(i,j)=f1*f2 |
taperY(i,j)=f1*f2 |
292 |
|
|
293 |
ENDDO |
ENDDO |