File indexing completed on 2018-09-01 05:09:53 UTC
view on githubraw file Latest commit 0e922392 on 2018-08-14 22:06:58 UTC
d76a0ac2c0 Jean*0001 #include "GAD_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE GAD_BIHARM_R(
0008 I bi, bj, k,
0e9223926c Jean*0009 I maskUp, diffKr4, tracer,
d76a0ac2c0 Jean*0010 U d4f,
0011 I myThid )
0012
0013
0014
0015
0016
0017
0018
0019
0020 IMPLICIT NONE
0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
0024 #include "GRID.h"
0025
0026
0027
0028
0e9223926c Jean*0029
d76a0ac2c0 Jean*0030
0031
0032
0033 INTEGER bi, bj, k
0e9223926c Jean*0034 _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
d76a0ac2c0 Jean*0035 _RL diffKr4(Nr)
e9de1d7682 Jean*0036 _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
d76a0ac2c0 Jean*0037 INTEGER myThid
0038
0039
0040
0041 _RL d4f (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0042
0043
0044
0045
0046
0047 INTEGER i, j, n
0048 INTEGER kl, km, kp
0049 _RL del2T(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:2)
0050 _RL gradR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:3)
0051 _RL tmpFac
0052
0053
0054 IF ( k.GE.2 ) THEN
0055
0056
0057 DO n=1,3
0058 km = k+n-3
0059 kl = k+n-2
0060 IF ( km.LT.1 .OR. kl.GT.Nr ) THEN
0061 DO j=1-OLy,sNy+OLy
0062 DO i=1-OLx,sNx+OLx
0063 gradR(i,j,n) = 0.
0064 ENDDO
0065 ENDDO
0066 ELSE
0067 tmpFac = recip_drC(kl)*deepFac2F(kl)*rhoFacF(kl)
0068 DO j=1-OLy,sNy+OLy
0069 DO i=1-OLx,sNx+OLx
e9de1d7682 Jean*0070 gradR(i,j,n) = ( tracer(i,j,kl)-tracer(i,j,km) )
d76a0ac2c0 Jean*0071 & *tmpFac*maskC(i,j,kl,bi,bj)*maskC(i,j,km,bi,bj)
0072 ENDDO
0073 ENDDO
0074 ENDIF
0075 ENDDO
0076
0077
0078 DO n=1,2
0079 kl = k+n-2
0080 kp = k+n-1
0081 tmpFac = recip_drF(kl)*recip_deepFac2C(kl)*recip_rhoFacC(kl)
0082 DO j=1-OLy,sNy+OLy
0083 DO i=1-OLx,sNx+OLx
0084 del2T(i,j,n) = ( gradR(i,j,n+1)-gradR(i,j,n) )
0085 & *_recip_hFacC(i,j,kl,bi,bj)
0086 ENDDO
0087 ENDDO
0088 ENDDO
0089
0090
0091 tmpFac = rkSign*recip_drC(k)*deepFac2F(k)*rhoFacF(k)
0092 DO j=1-OLy,sNy+OLy
0093 DO i=1-OLx,sNx+OLx
0094 d4f(i,j) = d4f(i,j)
0095 & + diffKr4(k)*( del2T(i,j,2)-del2T(i,j,1) )
0e9223926c Jean*0096 & *tmpFac*_rA(i,j,bi,bj)*maskUp(i,j)
d76a0ac2c0 Jean*0097 ENDDO
0098 ENDDO
0099
0100 ENDIF
0101
0102 RETURN
0103 END