File indexing completed on 2018-03-02 18:42:11 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
af960ebfb4 Jean*0001 #include "MOM_COMMON_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE MOM_W_SMAG_3D(
0009 I str13, str23, str33,
0010 I viscAh3d_00, viscAh3d_13, viscAh3d_23,
0011 I rThickC_W, rThickC_S, rThickC_C, recip_rThickC,
0012 O wDissip,
0013 I iMin,iMax,jMin,jMax, k, bi, bj, myThid )
0014
0015
0016
0017
0018 IMPLICIT NONE
0019
0020
0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
0024 #include "GRID.h"
0025
0026
0027
0028
0029
0030
0031
0032
0033 _RL str13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
0034 _RL str23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
0035 _RL str33(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0036 _RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0037 _RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
0038 _RL viscAh3d_23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
0039 _RL rThickC_W (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0040 _RL rThickC_S (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0041 _RL rThickC_C (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0042 _RL recip_rThickC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0043 INTEGER iMin,iMax, jMin,jMax
0044 INTEGER k, bi, bj
0045 INTEGER myThid
0046
0047
0048 _RL wDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0049
0050
245cf5c24c Jean*0051 #ifdef ALLOW_SMAG_3D
af960ebfb4 Jean*0052
0053 INTEGER i,j
0054 INTEGER km1
0055 _RL maskM1
0056
0057 km1 = MAX(1,k-1)
0058 maskM1 = 1.
0059 IF ( k.LE.1 ) maskM1 = 0.
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069 DO j= jMin,jMax
0070 DO i= iMin,iMax
0071
0072 wDissip(i,j) =
0073 & recip_rA(i,j,bi,bj)*(
0074 & ( viscAh3d_13(i+1, j , k )*str13(i+1, j ,k)
0075
0076 & *dyG(i+1, j ,bi,bj)
0077 & -viscAh3d_13( i , j , k )*str13( i , j ,k)
0078
0079 & *dyG( i , j ,bi,bj)
0080 & )
0081 & +( viscAh3d_23( i ,j+1, k )*str23( i ,j+1,k)
0082
0083 & *dxG( i ,j+1,bi,bj)
0084 & -viscAh3d_23( i , j , k )*str23( i , j ,k)
0085
0086 & *dxG( i , j ,bi,bj)
0087 & ) )
0088 & + recip_rThickC(i,j)
0089 & *( viscAh3d_00( i , j , k )*str33( i , j , k )
0090 & -viscAh3d_00( i , j ,km1)*str33( i , j ,km1)*maskM1
0091 & )*rkSign
0092 ENDDO
0093 ENDDO
0094
0095
0096
0097
0098
0099
0100
245cf5c24c Jean*0101 #endif /* ALLOW_SMAG_3D */
af960ebfb4 Jean*0102 RETURN
0103 END