File indexing completed on 2018-03-02 18:37:09 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
159909ced3 Jean*0001 #include "CPP_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE TRACERS_IIGW_CORRECTION(
0007 I bi, bj, myTime, myIter, myThid )
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 IMPLICIT NONE
0019
0020 #include "SIZE.h"
0021 #include "EEPARAMS.h"
0022 #include "PARAMS.h"
0023 #include "GRID.h"
0024 #include "DYNVARS.h"
0025 #ifdef ALLOW_NONHYDROSTATIC
0026 #include "NH_VARS.h"
0027 #endif
0028
0029
0030
0031
0032
0033
0034
0035 INTEGER bi,bj
0036 _RL myTime
0037 INTEGER myIter
0038 INTEGER myThid
0039
0040 #ifdef ALLOW_NONHYDROSTATIC
0041
0042
0043
0044 INTEGER i,j,k
0045 INTEGER kp1
0046 _RL dTr_k, dTrp1
0047 _RL dW_k(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
0048 _RL dWp1(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
0049
0050
0051
0052 DO j=1-Oly,sNy+Oly
0053 DO i=1-Olx,sNx+Olx
0054 dWp1(i,j) = 0. _d 0
0055 ENDDO
0056 ENDDO
0057
0058
0059 DO k=1,Nr
0060
0061
0062 kp1 = MIN(k+1,Nr)
0063 DO j=1-Oly,sNy+Oly
0064 DO i=1-Olx,sNx+Olx
0065 dW_k(i,j) = dWp1(i,j)
0066 dWp1(i,j) = ( wVel(i,j,kp1,bi,bj)
0067 & - gW(i,j,kp1,bi,bj) )*maskC(i,j,k,bi,bj)
0068 ENDDO
0069 ENDDO
0070
0071
0072 dTr_k = 0. _d 0
0073 IF ( k.GT.1 ) dTr_k = (tRef(k) - tRef(k-1))*rkSign
0074 dTrp1 = (tRef(kp1) - tRef(k))*rkSign
0075 IF ( tempAdvection .AND.
0076 & (dTr_k.NE.0. _d 0 .OR. dTrp1.NE.0. _d 0) ) THEN
0077 DO j=1-Oly,sNy+Oly
0078 DO i=1-Olx,sNx+Olx
0079 theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj)
0080 & -dTtracerLev(k)*0.5 _d 0
0081 & *( dTr_k*dW_k(i,j) + dTrp1*dWp1(i,j) )
616600b8d2 Patr*0082 & *recip_drF(k)*_recip_hFacC(i,j,k,bi,bj)
159909ced3 Jean*0083 ENDDO
0084 ENDDO
0085 ENDIF
0086
0087
0088 dTr_k = 0. _d 0
0089 IF ( k.GT.1 ) dTr_k = (sRef(k) - sRef(k-1))*rkSign
0090 dTrp1 = (sRef(kp1) - sRef(k))*rkSign
0091 IF ( saltAdvection .AND.
0092 & (dTr_k.NE.0. _d 0 .OR. dTrp1.NE.0. _d 0) ) THEN
0093 DO j=1-Oly,sNy+Oly
0094 DO i=1-Olx,sNx+Olx
0095 salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj)
0096 & -dTtracerLev(k)*0.5 _d 0
0097 & *( dTr_k*dW_k(i,j) + dTrp1*dWp1(i,j) )
616600b8d2 Patr*0098 & *recip_drF(k)*_recip_hFacC(i,j,k,bi,bj)
159909ced3 Jean*0099 ENDDO
0100 ENDDO
0101 ENDIF
0102
0103
0104 ENDDO
0105
0106 #endif /* ALLOW_NONHYDROSTATIC */
0107
0108 RETURN
0109 END