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
6d54cf9ca1 Ed H*0001 #include "MOM_FLUXFORM_OPTIONS.h"
bd2e80b12f Jean*0002
0003
0004
eaba2fd266 Jean*0005
0006 SUBROUTINE MOM_CALC_RTRANS(
bd2e80b12f Jean*0007 I k, bi, bj,
0008 O rTransU, rTransV,
0009 I myTime, myIter, myThid)
0010
0011
eaba2fd266 Jean*0012
0013
bd2e80b12f Jean*0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 IMPLICIT NONE
0025
0026 #include "SIZE.h"
0027 #include "DYNVARS.h"
0028 #include "EEPARAMS.h"
0029 #include "PARAMS.h"
0030 #include "GRID.h"
0031 #include "SURFACE.h"
aa2d1573fa Patr*0032 #include "MOM_FLUXFORM.h"
bd2e80b12f Jean*0033
0034
0035
0036
0037
0038
0039
0040
0041
eaba2fd266 Jean*0042
0043
bd2e80b12f Jean*0044 INTEGER k, bi, bj, myIter, myThid
0045 _RL myTime
0046 _RL rTransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0047 _RL rTransV(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0048
0049
0050 #ifdef NONLIN_FRSURF
0051
0052
0053
0054
aa2d1573fa Patr*0055
eaba2fd266 Jean*0056
aa2d1573fa Patr*0057
eaba2fd266 Jean*0058
0059
0060
bd2e80b12f Jean*0061 #endif /* NONLIN_FRSURF */
0062
0063
0064 INTEGER i,j
0065
0066
0067 #ifdef NONLIN_FRSURF
0068 IF ( k.EQ.Nr+1 .AND.
9669509dca Jean*0069 & useRealFreshWaterFlux .AND. usingPCoords ) THEN
eaba2fd266 Jean*0070
0071
bd2e80b12f Jean*0072 DO j=1-OLy+1,sNy+OLy
0073 DO i=1-OLx+1,sNx+OLx
3da6675e68 Jean*0074 rTransU(i,j) = mass2rUnit*
bd2e80b12f Jean*0075 & 0.5 _d 0*( PmEpR( i ,j,bi,bj)*rA( i ,j,bi,bj)
0076 & +PmEpR(i-1,j,bi,bj)*rA(i-1,j,bi,bj) )
3da6675e68 Jean*0077 rTransV(i,j) = mass2rUnit*
bd2e80b12f Jean*0078 & 0.5 _d 0*( PmEpR(i, j ,bi,bj)*rA(i, j ,bi,bj)
0079 & +PmEpR(i,j-1,bi,bj)*rA(i,j-1,bi,bj) )
0080 ENDDO
0081 ENDDO
0082 ELSEIF ( k.GT.Nr ) THEN
0083 #else /* NONLIN_FRSURF */
0084 IF ( k.GT.Nr ) THEN
0085 #endif /* NONLIN_FRSURF */
0086 DO j=1-OLy+1,sNy+OLy
0087 DO i=1-OLx+1,sNx+OLx
0088 rTransU(i,j) = 0.
0089 rTransV(i,j) = 0.
0090 ENDDO
0091 ENDDO
0092 ELSE
0093
0094 DO j=1-OLy+1,sNy+OLy
0095 DO i=1-OLx+1,sNx+OLx
0096 rTransU(i,j) =
eaba2fd266 Jean*0097 & 0.5 _d 0*( wVel(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)
0098 & +wVel( i ,j,k,bi,bj)*rA( i ,j,bi,bj)
0099 & )*deepFac2F(k)*rhoFacF(k)
bd2e80b12f Jean*0100 rTransV(i,j) =
eaba2fd266 Jean*0101 & 0.5 _d 0*( wVel(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
0102 & +wVel(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
0103 & )*deepFac2F(k)*rhoFacF(k)
bd2e80b12f Jean*0104 ENDDO
0105 ENDDO
eaba2fd266 Jean*0106 ENDIF
bd2e80b12f Jean*0107
0108 #ifdef NONLIN_FRSURF
0109
eaba2fd266 Jean*0110
bd2e80b12f Jean*0111 IF ( select_rStar.NE.0 ) THEN
cdc9f269ae Patr*0112 # ifndef DISABLE_RSTAR_CODE
bd2e80b12f Jean*0113
0114 IF ( k.EQ.1) THEN
0115
0116 DO j=1-OLy,sNy+OLy
0117 DO i=1-OLx,sNx+OLx
0118 dWtransC(i,j,bi,bj) = rStarDhCDt(i,j,bi,bj)
0119 & *(Ro_surf(i,j,bi,bj)-R_low(i,j,bi,bj))
0120 & *rA(i,j,bi,bj)
0121 ENDDO
0122 ENDDO
0123 DO j=1-OLy+1,sNy+OLy
0124 DO i=1-OLx+1,sNx+OLx
eaba2fd266 Jean*0125 dWtransU(i,j,bi,bj) =
bd2e80b12f Jean*0126 & 0.5 _d 0*(dWtransC(i-1,j,bi,bj)+dWtransC(i,j,bi,bj))
0127 dWtransV(i,j,bi,bj) =
0128 & 0.5 _d 0*(dWtransC(i,j-1,bi,bj)+dWtransC(i,j,bi,bj))
0129 ENDDO
0130 ENDDO
0131
0132 ELSEIF (k.LE.Nr) THEN
0133
0134 DO j=1-OLy,sNy+OLy
0135 DO i=1-OLx,sNx+OLx
0136 dWtransC(i,j,bi,bj) = dWtransC(i,j,bi,bj)
0137 & - rStarDhCDt(i,j,bi,bj)*drF(k-1)*h0FacC(i,j,k-1,bi,bj)
0138 & *rA(i,j,bi,bj)
0139 ENDDO
0140 ENDDO
0141 DO j=1-OLy+1,sNy+OLy
0142 DO i=1-OLx+1,sNx+OLx
0143 dWtransU(i,j,bi,bj) = dWtransU(i,j,bi,bj)
0144 & - rStarDhWDt(i,j,bi,bj)*drF(k-1)*h0FacW(i,j,k-1,bi,bj)
0145 & *rAw(i,j,bi,bj)
0146 dWtransV(i,j,bi,bj) = dWtransV(i,j,bi,bj)
0147 & - rStarDhSDt(i,j,bi,bj)*drF(k-1)*h0FacS(i,j,k-1,bi,bj)
0148 & *rAs(i,j,bi,bj)
0149 ENDDO
0150 ENDDO
0151
0152 DO j=1-OLy+1,sNy+OLy
0153 DO i=1-OLx+1,sNx+OLx
0154 rTransU(i,j) = rTransU(i,j)-dWtransU(i,j,bi,bj)
0155 & + (dWtransC(i-1,j,bi,bj)+dWtransC(i,j,bi,bj))*0.5 _d 0
0156 rTransV(i,j) = rTransV(i,j)-dWtransV(i,j,bi,bj)
0157 & + (dWtransC(i,j-1,bi,bj)+dWtransC(i,j,bi,bj))*0.5 _d 0
0158 ENDDO
0159 ENDDO
0160
0161 ENDIF
0162
cdc9f269ae Patr*0163 # endif /* DISABLE_RSTAR_CODE */
bd2e80b12f Jean*0164 ENDIF
cdc9f269ae Patr*0165
bd2e80b12f Jean*0166 #endif /* NONLIN_FRSURF */
0167
0168 RETURN
0169 END