File indexing completed on 2018-03-02 18:36:25 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
3d9080e0a5 Jean*0001 #include "CPP_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE CALC_GRAD_PHI_FV(
0007 I k, bi, bj, iMin,iMax, jMin,jMax,
0008 I phiHydF, phiHydU, pKappaF, pKappaU,
0009 O dPhiHydX, dPhiHydY,
0010 I myTime, myIter, myThid)
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 IMPLICIT NONE
0023
0024 #include "SIZE.h"
0025 #include "EEPARAMS.h"
0026 #include "PARAMS.h"
0027 #include "GRID.h"
0028 #include "SURFACE.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 INTEGER k, bi,bj, iMin,iMax, jMin,jMax
0045 _RL phiHydF(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0046 _RL phiHydU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0047 _RL pKappaF(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0048 _RL pKappaU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0049 _RL dPhiHydX(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0050 _RL dPhiHydY(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0051 _RL myTime
0052 INTEGER myIter, myThid
0053
0054 #ifdef INCLUDE_PHIHYD_CALCULATION_CODE
0055
0056
0057
0058
0059 INTEGER i,j
0060 _RL dpk_dip, dpk_dim
0061 _RL dpk_djp, dpk_djm
0062
0063
0064
0065
0066 DO j=1-OLy,sNy+OLy
0067 DO i=1-OLx,sNx+OLx
0068 dPhiHydX(i,j) = 0. _d 0
0069 dPhiHydY(i,j) = 0. _d 0
0070 ENDDO
0071 ENDDO
0072 DO j=jMin,jMax
0073 DO i=iMin+1,iMax
0074 dpk_dip = pKappaF( i ,j) - pKappaU(i-1,j)
0075 dpk_dim = pKappaF(i-1,j) - pKappaU( i ,j)
0076 dPhiHydX(i,j) = ( phi0surf(i,j,bi,bj) - phi0surf(i-1,j,bi,bj) )
0077 & + ( dpk_dip*( phiHydU(i,j) - phiHydF(i-1,j) )
0078 & + dpk_dim*( phiHydF(i,j) - phiHydU(i-1,j) )
0079 & )/( dpk_dip + dpk_dim )
0080 dPhiHydX(i,j) = _recip_dxC(i,j,bi,bj)*dPhiHydX(i,j)
0081
0082 ENDDO
0083 ENDDO
0084 DO j=jMin+1,jMax
0085 DO i=iMin,iMax
0086 dpk_djp = pKappaF(i, j ) - pKappaU(i,j-1)
0087 dpk_djm = pKappaF(i,j-1) - pKappaU(i, j )
0088 dPhiHydY(i,j) = ( phi0surf(i,j,bi,bj) - phi0surf(i,j-1,bi,bj) )
0089 & + ( dpk_djp*( phiHydU(i,j) - phiHydF(i,j-1) )
0090 & + dpk_djm*( phiHydF(i,j) - phiHydU(i,j-1) )
0091 & )/( dpk_djp + dpk_djm )
0092 dPhiHydY(i,j) = _recip_dyC(i,j,bi,bj)*dPhiHydY(i,j)
0093
0094 ENDDO
0095 ENDDO
0096
0097
0098 DO j=1-OLy,sNy+OLy
0099 DO i=1-OLx,sNx+OLx
0100 dPhiHydX(i,j) = dPhiHydX(i,j)*_maskW(i,j,k,bi,bj)
0101 dPhiHydY(i,j) = dPhiHydY(i,j)*_maskS(i,j,k,bi,bj)
0102 ENDDO
0103 ENDDO
0104
0105 #endif /* INCLUDE_PHIHYD_CALCULATION_CODE */
0106
0107 RETURN
0108 END