File indexing completed on 2023-05-28 05:09:52 UTC
view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
a462ae7a37 Jean*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_OPTIONS.h"
0003
0004
0005
0006
51575f66de Mart*0007 SUBROUTINE TRACERS_CORRECTION_STEP( myTime, myIter, myThid )
a462ae7a37 Jean*0008
0009
f3ec658fc9 Jean*0010
a462ae7a37 Jean*0011
0012
f3ec658fc9 Jean*0013
a27159adf7 Jean*0014
0015
0016
a462ae7a37 Jean*0017
0018
0019
0020
0021 IMPLICIT NONE
0022
0023 #include "SIZE.h"
0024 #include "EEPARAMS.h"
0025 #include "PARAMS.h"
0026 #include "DYNVARS.h"
972c0130ec Jean*0027 #ifdef ALLOW_GENERIC_ADVDIFF
0028 # include "GAD.h"
0029 #endif
b4daa24319 Shre*0030 #ifdef ALLOW_TAPENADE
0031 # ifdef ALLOW_PTRACERS
0032 # include "PTRACERS_SIZE.h"
0033 # include "PTRACERS_FIELDS.h"
0034 # endif
0035 #endif /* ALLOW_TAPENADE */
a462ae7a37 Jean*0036
0037
972c0130ec Jean*0038
0039
0040
a462ae7a37 Jean*0041 _RL myTime
0042 INTEGER myIter
0043 INTEGER myThid
0044
9e80b0bd5d Jean*0045 #ifdef ALLOW_GENERIC_ADVDIFF
a462ae7a37 Jean*0046
51575f66de Mart*0047 INTEGER bi, bj
0048 #ifdef ALLOW_OPPS
a462ae7a37 Jean*0049 INTEGER iMin,iMax
0050 INTEGER jMin,jMax
51575f66de Mart*0051 #endif
a462ae7a37 Jean*0052
0053
cb7fa97db9 Jean*0054 #ifdef ALLOW_NONHYDROSTATIC
bd27360393 Jean*0055 IF ( implicitIntGravWave ) THEN
0056 DO bj=myByLo(myThid),myByHi(myThid)
0057 DO bi=myBxLo(myThid),myBxHi(myThid)
cb7fa97db9 Jean*0058 CALL TRACERS_IIGW_CORRECTION(bi,bj, myTime,myIter,myThid)
bd27360393 Jean*0059 ENDDO
a462ae7a37 Jean*0060 ENDDO
bd27360393 Jean*0061 ENDIF
0062 #endif /* ALLOW_NONHYDROSTATIC */
a462ae7a37 Jean*0063
0064
0065
0066
0067
0068
0069
0070 #ifdef ALLOW_SHAP_FILT
0071 IF (useSHAP_FILT) THEN
f3ec658fc9 Jean*0072 CALL TIMER_START('SHAP_FILT_TS [TRC_CORR_STEP]',myThid)
a462ae7a37 Jean*0073 CALL SHAP_FILT_APPLY_TS( theta,salt, myTime, myIter, myThid )
f3ec658fc9 Jean*0074 CALL TIMER_STOP ('SHAP_FILT_TS [TRC_CORR_STEP]',myThid)
a462ae7a37 Jean*0075 ENDIF
f3ec658fc9 Jean*0076 #endif
a462ae7a37 Jean*0077 #ifdef ALLOW_ZONAL_FILT
0078 IF (useZONAL_FILT) THEN
f3ec658fc9 Jean*0079 CALL TIMER_START('ZONAL_FILT_TS [TRC_CORR_STEP]',myThid)
0080 CALL ZONAL_FILT_APPLY_TS( theta, salt, myThid )
0081 CALL TIMER_STOP ('ZONAL_FILT_TS [TRC_CORR_STEP]',myThid)
7744ec9132 Jean*0082 # ifdef ALLOW_PTRACERS
0083
0084 IF (usePTRACERS) THEN
0085 CALL PTRACERS_ZONAL_FILT_APPLY( myThid )
0086 ENDIF
0087 # endif
a462ae7a37 Jean*0088 ENDIF
7744ec9132 Jean*0089 #endif /* ALLOW_ZONAL_FILT */
2738ab07b5 Andr*0090
0091 #ifdef ALLOW_FIZHI
0092 IF (useFIZHI .and. saltAdvScheme.eq.2) THEN
0093 CALL TIMER_START('SALT_FILL [TRC_CORR_STEP]',myThid)
0094 CALL SALT_FILL( uVel,vVel,salt,1,myTime,myIter,myThid )
0095 CALL TIMER_STOP ('SALT_FILL [TRC_CORR_STEP]',myThid)
0096 ENDIF
0097 #endif
a462ae7a37 Jean*0098
0099 DO bj=myByLo(myThid),myByHi(myThid)
0100 DO bi=myBxLo(myThid),myBxHi(myThid)
0101
0102
69a7b27187 Mart*0103 #ifdef ALLOW_OPPS
0104 IF ( useOPPS ) THEN
51575f66de Mart*0105 iMin = 1
0106 iMax = sNx
0107 jMin = 1
0108 jMax = sNy
69a7b27187 Mart*0109 CALL OPPS_INTERFACE(
0110 I bi, bj, iMin, iMax, jMin, jMax,
0111 I myTime, myIter, myThid )
51575f66de Mart*0112 ENDIF
69a7b27187 Mart*0113 #endif /* ALLOW_OPPS */
51575f66de Mart*0114 #ifdef INCLUDE_CONVECT_CALL
0115 IF ( .NOT. useOPPS .AND. cAdjFreq .NE. 0. ) THEN
69a7b27187 Mart*0116 CALL CONVECTIVE_ADJUSTMENT(
6b53957f14 Jean*0117 I bi, bj, myTime, myIter, myThid )
69a7b27187 Mart*0118 ENDIF
51575f66de Mart*0119 #endif /* INCLUDE_CONVECT_CALL */
a462ae7a37 Jean*0120
5644a0ed41 Sama*0121 #ifdef ALLOW_MATRIX
a27159adf7 Jean*0122 IF (useMATRIX)
5644a0ed41 Sama*0123 & CALL MATRIX_STORE_TENDENCY_IMP( bi, bj, myTime, myIter, myThid )
0124 #endif
0125
a462ae7a37 Jean*0126
0127 ENDDO
0128 ENDDO
9e80b0bd5d Jean*0129
0130 #endif /* ALLOW_GENERIC_ADVDIFF */
a462ae7a37 Jean*0131
0132 RETURN
0133 END