File indexing completed on 2018-03-02 18:41:38 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
5174b865b3 Mart*0001 #include "KPP_OPTIONS.h"
08300bd1e7 Jean*0002 #ifdef ALLOW_GMREDI
cf0f4bb0af Jean*0003 # include "GMREDI_OPTIONS.h"
08300bd1e7 Jean*0004 #endif
5174b865b3 Mart*0005
417c225d28 Jean*0006 SUBROUTINE KPP_TRANSPORT_PTR (
f8b74ffedb Jean*0007 I iMin, iMax, jMin, jMax,
0008 I bi, bj, k, km1, iTr,
417c225d28 Jean*0009 O df,
0010 I myTime, myIter, myThid )
88b144ae49 Jean*0011
0012
0013
0014
0015
0016
0017
c3cd6c250f Jean*0018
88b144ae49 Jean*0019
0020
0021
0022
0023
0024
0025
5174b865b3 Mart*0026 IMPLICIT NONE
0027
0028
0029 #include "SIZE.h"
0030 #include "EEPARAMS.h"
0031 #include "PARAMS.h"
0032 #include "GRID.h"
0033 #include "FFIELDS.h"
0034 #include "KPP.h"
0035 #include "KPP_PARAMS.h"
0036 #ifdef ALLOW_PTRACERS
cf0f4bb0af Jean*0037 # include "PTRACERS_SIZE.h"
1f86e2e864 Jean*0038
cf0f4bb0af Jean*0039 # include "PTRACERS_FIELDS.h"
5174b865b3 Mart*0040 #endif
08300bd1e7 Jean*0041 #ifdef ALLOW_GMREDI
cf0f4bb0af Jean*0042 # include "GMREDI.h"
08300bd1e7 Jean*0043 #endif
4e66ab0b67 Oliv*0044 #ifdef ALLOW_LONGSTEP
cf0f4bb0af Jean*0045 # include "LONGSTEP.h"
0046 #endif
0047 #ifdef ALLOW_OFFLINE
0048 # include "OFFLINE_SWITCH.h"
4e66ab0b67 Oliv*0049 #endif
08300bd1e7 Jean*0050
5174b865b3 Mart*0051
f8b74ffedb Jean*0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 INTEGER iMin, iMax, jMin, jMax
0062 INTEGER bi, bj, k, km1, iTr
5174b865b3 Mart*0063 _RL df (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
417c225d28 Jean*0064 _RL myTime
0065 INTEGER myIter
0066 INTEGER myThid
5174b865b3 Mart*0067
0068 #if defined(ALLOW_KPP) && defined(KPP_GHAT) && defined(ALLOW_PTRACERS)
0069
0070
f8b74ffedb Jean*0071
ce5b6f2183 Jean*0072 INTEGER i, j
08300bd1e7 Jean*0073 _RL tmpFac
be298a8815 Jean*0074 #ifndef ALLOW_OFFLINE
0075 LOGICAL offlineLoadKPP
0076 offlineLoadKPP = .FALSE.
0077 #endif
88b144ae49 Jean*0078
0079
5174b865b3 Mart*0080
cf0f4bb0af Jean*0081 IF ( useOffLine.AND.offlineLoadKPP ) THEN
08300bd1e7 Jean*0082
ce5b6f2183 Jean*0083
0084
0085 DO j=jMin,jMax
0086 DO i=iMin,iMax
0087 df(i,j) = - _rA(i,j,bi,bj)
0088 & *KPPghat(i,j,k,bi,bj)
f8b74ffedb Jean*0089 & *surfaceForcingPTr(i,j,bi,bj,iTr)
ce5b6f2183 Jean*0090 ENDDO
0091 ENDDO
5174b865b3 Mart*0092
ce5b6f2183 Jean*0093 ELSE
08300bd1e7 Jean*0094
ce5b6f2183 Jean*0095 IF ( useGMRedi .AND. KPP_ghatUseTotalDiffus ) THEN
0096 tmpFac = 1. _d 0
0097 ELSE
0098 tmpFac = 0. _d 0
0099 ENDIF
0100 DO j=jMin,jMax
0101 DO i=iMin,iMax
0102 df(i,j) = - _rA(i,j,bi,bj)
0103 #ifdef ALLOW_LONGSTEP
0104 & *( LS_KPPdiffKzS(i,j,k,bi,bj)
0105 #ifdef ALLOW_GMREDI
0106 & + tmpFac*LS_Kwz(i,j,k,bi,bj)
0107 #endif
0108 & )*LS_KPPghat(i,j,km1,bi,bj)
0109 #else /* ALLOW_LONGSTEP */
0110 & *( KPPdiffKzS(i,j,k,bi,bj)
0111 #ifdef ALLOW_GMREDI
0112 & + tmpFac*Kwz(i,j,k,bi,bj)
0113 #endif
0114 & )*KPPghat(i,j,km1,bi,bj)
0115 #endif /* ALLOW_LONGSTEP */
f8b74ffedb Jean*0116 & *surfaceForcingPTr(i,j,bi,bj,iTr)
ce5b6f2183 Jean*0117 ENDDO
0118 ENDDO
08300bd1e7 Jean*0119
ce5b6f2183 Jean*0120 ENDIF
08300bd1e7 Jean*0121
5174b865b3 Mart*0122 #endif /* ALLOW_KPP and KPP_GHAT and PTRACERS */
0123
0124 RETURN
0125 END