File indexing completed on 2018-03-02 18:42:06 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
9c05b3873e Alis*0001 #include "MOM_COMMON_OPTIONS.h"
07cc642809 Alis*0002
0003 SUBROUTINE MOM_HDISSIP(
02512ff234 Jean*0004 I bi, bj, k,
0005 I tension, strain, hFacZ,
0006 I viscAh_s, viscAh_t, viscA4_s, viscA4_t,
0007 I harmonic, biharmonic, useVariableViscosity,
0008 O uDissip, vDissip,
0009 I myThid )
0010
07cc642809 Alis*0011 IMPLICIT NONE
02512ff234 Jean*0012
07cc642809 Alis*0013
0014
0015
0016
0017
0018 #include "SIZE.h"
f293e6030b Bayl*0019 #include "EEPARAMS.h"
0020 #include "PARAMS.h"
02512ff234 Jean*0021 #include "GRID.h"
07cc642809 Alis*0022
0023
0024 INTEGER bi,bj,k
0025 _RL tension(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
02512ff234 Jean*0026 _RL strain (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0027 _RS hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
b0c3bd7ab0 Bayl*0028 _RL viscAh_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
998681995e Bayl*0029 _RL viscAh_t(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
b0c3bd7ab0 Bayl*0030 _RL viscA4_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
998681995e Bayl*0031 _RL viscA4_t(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
b0c3bd7ab0 Bayl*0032 LOGICAL harmonic, biharmonic, useVariableViscosity
02512ff234 Jean*0033 _RL uDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0034 _RL vDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
998681995e Bayl*0035 INTEGER myThid
f293e6030b Bayl*0036
998681995e Bayl*0037
02512ff234 Jean*0038 INTEGER i, j
07cc642809 Alis*0039
b0c3bd7ab0 Bayl*0040
0041 IF (harmonic) THEN
02512ff234 Jean*0042 DO j=2-OLy,sNy+OLy-1
0043 DO i=2-OLx,sNx+OLx-1
b0c3bd7ab0 Bayl*0044
02512ff234 Jean*0045 uDissip(i,j) =
0046 & recip_dyG(i,j,bi,bj)*recip_dyG(i,j,bi,bj)
0047 & *recip_dxC(i,j,bi,bj)
b0c3bd7ab0 Bayl*0048 & *(
02512ff234 Jean*0049 & dyF( i , j ,bi,bj)*dyF( i , j ,bi,bj)
b0c3bd7ab0 Bayl*0050 & *viscAh_t( i , j )*tension( i , j )
02512ff234 Jean*0051 & -dyF(i-1, j ,bi,bj)*dyF(i-1, j ,bi,bj)
b0c3bd7ab0 Bayl*0052 & *viscAh_t(i-1, j )*tension(i-1, j )
0053 & )
02512ff234 Jean*0054 & +recip_dxC(i,j,bi,bj)*recip_dxC(i,j,bi,bj)
0055 & *recip_dyG(i,j,bi,bj)
b0c3bd7ab0 Bayl*0056 & *(
02512ff234 Jean*0057 & dxV( i ,j+1,bi,bj)*dxV( i ,j+1,bi,bj)
b0c3bd7ab0 Bayl*0058 & *viscAh_s(i,j+1)*strain( i ,j+1)
02512ff234 Jean*0059 & -dxV( i , j ,bi,bj)*dxV( i , j ,bi,bj)
b0c3bd7ab0 Bayl*0060 & *viscAh_s(i, j )*strain( i , j )
0061 & )
0062
02512ff234 Jean*0063 vDissip(i,j) =
0064 & recip_dyC(i,j,bi,bj)*recip_dyC(i,j,bi,bj)
0065 & *recip_dxG(i,j,bi,bj)
b0c3bd7ab0 Bayl*0066 & *(
02512ff234 Jean*0067 & dyU(i+1, j ,bi,bj)*dyU(i+1, j ,bi,bj)
b0c3bd7ab0 Bayl*0068 & *viscAh_s(i+1,j)*strain(i+1,j)
02512ff234 Jean*0069 & -dyU( i , j ,bi,bj)*dyU( i , j ,bi,bj)
b0c3bd7ab0 Bayl*0070 & *viscAh_s( i ,j)*strain( i ,j)
0071 & )
02512ff234 Jean*0072 & -recip_dxG(i,j,bi,bj)*recip_dxG(i,j,bi,bj)
0073 & *recip_dyC(i,j,bi,bj)
b0c3bd7ab0 Bayl*0074 & *(
02512ff234 Jean*0075 & dxF( i , j ,bi,bj)*dxF( i , j ,bi,bj)
b0c3bd7ab0 Bayl*0076 & *viscAh_t(i, j )*tension(i, j )
02512ff234 Jean*0077 & -dxF( i ,j-1,bi,bj)*dxF( i ,j-1,bi,bj)
b0c3bd7ab0 Bayl*0078 & *viscAh_t(i,j-1)*tension(i,j-1)
0079 & )
0080
0081 ENDDO
07cc642809 Alis*0082 ENDDO
b0c3bd7ab0 Bayl*0083 ENDIF
0084 IF (biharmonic) THEN
0085 STOP 'MOM_HDISSIP: BIHARMONIC NOT ALLOWED WITH STRAIN-TENSION'
0086 ENDIF
07cc642809 Alis*0087
0088 RETURN
0089 END