File indexing completed on 2018-03-02 18:40:58 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
76b8386f6e Jean*0001 #include "GAD_OPTIONS.h"
0002
0003
0004
0005
0006
0ef5a3ea3b Jean*0007 SUBROUTINE GAD_DST2U1_ADV_R(
76b8386f6e Jean*0008 I bi,bj,k, advectionScheme,
0af3073e4e Jean*0009 I deltaTloc, rTrans, wFld,
76b8386f6e Jean*0010 I tracer,
0011 O wT,
0012 I myThid )
0013
0014
0015
0ef5a3ea3b Jean*0016
76b8386f6e Jean*0017
0018
0019
0020 IMPLICIT NONE
0021 #include "SIZE.h"
0022 #include "GRID.h"
0023 #include "GAD.h"
0024
0025
0026
0027
0028
0029
0030
0031
0af3073e4e Jean*0032
76b8386f6e Jean*0033
0034
0035 INTEGER bi,bj,k
0036 INTEGER advectionScheme
0037 _RL deltaTloc
0038 _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0af3073e4e Jean*0039 _RL wFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
76b8386f6e Jean*0040 _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0041 INTEGER myThid
0042
0043
0044
0045 _RL wT (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0046
0047
0048
0049
0050
0af3073e4e Jean*0051
76b8386f6e Jean*0052
0053 INTEGER i,j,km1
0af3073e4e Jean*0054 _RL wLoc, wCFL, rLimit, wAbs
76b8386f6e Jean*0055
0056
0057 rLimit = 0. _d 0
0058 IF ( advectionScheme.EQ.ENUM_DST2 ) rLimit = 1. _d 0
0059
0060 km1=MAX(1,k-1)
0061
0062 IF ( k.LE.1 .OR. k.GT.Nr) THEN
0063 DO j=1-Oly,sNy+Oly
0064 DO i=1-Olx,sNx+Olx
0065 wT(i,j) = 0.
0066 ENDDO
0067 ENDDO
0068 ELSE
0069 DO j=1-Oly,sNy+Oly
0070 DO i=1-Olx,sNx+Olx
0071
99c9058df1 Jean*0072 wLoc = wFld(i,j)
0073
0af3073e4e Jean*0074 wCFL = ABS(wLoc*deltaTloc*recip_drC(k))
76b8386f6e Jean*0075
0ef5a3ea3b Jean*0076
0077
0078
0079
0080
0081
0082
0083
0084
0085 wAbs = ABS(rTrans(i,j))*rkSign
0086 & *( 1. _d 0 - rLimit*(1. _d 0 - wCFL) )
0087 wT(i,j) = maskC(i,j,km1,bi,bj)*(
0088 & ( rTrans(i,j)+wAbs )* 0.5 _d 0 * tracer(i,j,km1)
0089 & + ( rTrans(i,j)-wAbs )* 0.5 _d 0 * tracer(i,j,k)
76b8386f6e Jean*0090 & )
0091 ENDDO
0092 ENDDO
0093 ENDIF
0094
0095 RETURN
0096 END