File indexing completed on 2023-05-28 05:09:48 UTC
view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
6d54cf9ca1 Ed H*0001 #include "PACKAGES_CONFIG.h"
2cfc9d59a2 Patr*0002 #include "CPP_OPTIONS.h"
517dbdc414 Jean*0003 #ifdef ALLOW_AUTODIFF
0004 # include "AUTODIFF_OPTIONS.h"
0005 #endif
2cfc9d59a2 Patr*0006
9366854e02 Chri*0007
0008
0009
2cfc9d59a2 Patr*0010 SUBROUTINE CONVECTIVE_ADJUSTMENT_INI(
218973b4ce Jean*0011 I bi, bj, myTime, myIter, myThid )
9366854e02 Chri*0012
0013
218973b4ce Jean*0014
0015
9366854e02 Chri*0016
218973b4ce Jean*0017
9366854e02 Chri*0018
0019
0020
0021
0022
0023
2cfc9d59a2 Patr*0024 IMPLICIT NONE
0025
0026 #include "SIZE.h"
0027 #include "EEPARAMS.h"
0028 #include "PARAMS.h"
0029 #include "DYNVARS.h"
0030 #include "GRID.h"
7c50f07931 Mart*0031 #ifdef ALLOW_AUTODIFF_TAMC
b4daa24319 Shre*0032 # include "tamc.h"
517dbdc414 Jean*0033 #endif /* ALLOW_AUTODIFF */
2cfc9d59a2 Patr*0034
b4daa24319 Shre*0035 #ifdef ALLOW_TAPENADE
0036 # ifdef ALLOW_PTRACERS
0037 # include "PTRACERS_SIZE.h"
0038 # include "PTRACERS_FIELDS.h"
0039 # endif
0040 #endif /* ALLOW_TAPENADE */
0041
9366854e02 Chri*0042
218973b4ce Jean*0043
0044
0045
dd54a44307 Mart*0046
218973b4ce Jean*0047 INTEGER bi,bj
0048 _RL myTime
2cfc9d59a2 Patr*0049 INTEGER myIter
0050 INTEGER myThid
0051
51575f66de Mart*0052 #ifdef INCLUDE_CONVECT_INI_CALL
2cfc9d59a2 Patr*0053
517dbdc414 Jean*0054
51575f66de Mart*0055
0056
517dbdc414 Jean*0057
9366854e02 Chri*0058
218973b4ce Jean*0059
9366854e02 Chri*0060
dd54a44307 Mart*0061
0062
218973b4ce Jean*0063 INTEGER iMin,iMax,jMin,jMax
dd54a44307 Mart*0064 INTEGER i, j, k, kTop, kBottom, kDir, deltaK
7c50f07931 Mart*0065 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0066 INTEGER tkey, kkey
7c50f07931 Mart*0067 #endif
2cfc9d59a2 Patr*0068 _RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0069 _RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
6a4715ab55 Mart*0070 _RL ConvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
dd4d471098 Alis*0071 _RL weightA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0072 _RL weightB(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
9366854e02 Chri*0073
2cfc9d59a2 Patr*0074
0075
51575f66de Mart*0076
0077
2cfc9d59a2 Patr*0078
218973b4ce Jean*0079
517dbdc414 Jean*0080 iMin=1-OLx
0081 iMax=sNx+OLx
0082 jMin=1-OLy
0083 jMax=sNy+OLy
218973b4ce Jean*0084
7103bd8015 Patr*0085
0086 kTop = 0
0087 kBottom = 0
0088 kDir = 0
0089 deltaK = 0
0090
2cfc9d59a2 Patr*0091
dd54a44307 Mart*0092 DO k=1,Nr
2cfc9d59a2 Patr*0093 DO j=1-OLy,sNy+OLy
0094 DO i=1-OLx,sNx+OLx
0095 ConvectCount(i,j,k) = 0.
0096 ENDDO
0097 ENDDO
0098 ENDDO
0099
0100 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0101 tkey = bi + (bj-1)*nSx
2cfc9d59a2 Patr*0102 #endif /* ALLOW_AUTODIFF_TAMC */
0103
7c50f07931 Mart*0104 IF ( rkSign*gravitySign .GT. 0. ) THEN
9669509dca Jean*0105
7c50f07931 Mart*0106 kTop = 2
0107 kBottom = Nr
0108 kDir = 1
0109 deltaK = -1
0110 ELSE
9669509dca Jean*0111
7c50f07931 Mart*0112 kTop = Nr
0113 kBottom = 2
0114 kDir = -1
0115 deltaK = 0
0116 ENDIF
6a4715ab55 Mart*0117
2cfc9d59a2 Patr*0118
7c50f07931 Mart*0119 DO k=kTop,kBottom,kDir
6a4715ab55 Mart*0120
2cfc9d59a2 Patr*0121 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0122 kkey = k + (tkey-1)*Nr
dd54a44307 Mart*0123
0124
0125
0126
0127
0128
0129
2cfc9d59a2 Patr*0130 #endif /* ALLOW_AUTODIFF_TAMC */
dd54a44307 Mart*0131
7c50f07931 Mart*0132 CALL FIND_RHO_2D(
dd54a44307 Mart*0133 I iMin, iMax, jMin, jMax, k+deltaK,
0134 I theta(1-OLx,1-OLy,k-1,bi,bj),
0135 I salt (1-OLx,1-OLy,k-1,bi,bj),
2cfc9d59a2 Patr*0136 O rhoKm1,
dd54a44307 Mart*0137 I k-1, bi, bj, myThid )
2cfc9d59a2 Patr*0138
dd54a44307 Mart*0139
7c50f07931 Mart*0140 CALL FIND_RHO_2D(
dd54a44307 Mart*0141 I iMin, iMax, jMin, jMax, k+deltaK,
0142 I theta(1-OLx,1-OLy,k,bi,bj),
0143 I salt (1-OLx,1-OLy,k,bi,bj),
2cfc9d59a2 Patr*0144 O rhoK,
dd54a44307 Mart*0145 I k, bi, bj, myThid )
2cfc9d59a2 Patr*0146 #ifdef ALLOW_AUTODIFF_TAMC
dd54a44307 Mart*0147
0148
2cfc9d59a2 Patr*0149 #endif /* ALLOW_AUTODIFF_TAMC */
dd4d471098 Alis*0150
dd54a44307 Mart*0151
7c50f07931 Mart*0152 CALL CONVECTIVE_WEIGHTS(
dd54a44307 Mart*0153 I bi,bj,k,rhoKm1,rhoK,
dd4d471098 Alis*0154 O weightA,weightB,ConvectCount,
0155 I myThid)
0156
dd54a44307 Mart*0157
7c50f07931 Mart*0158 CALL CONVECTIVELY_MIXTRACER(
0159 I bi,bj,k,weightA,weightB,
0160 U theta,
0161 I myThid)
dd4d471098 Alis*0162
dd54a44307 Mart*0163
7c50f07931 Mart*0164 CALL CONVECTIVELY_MIXTRACER(
0165 I bi,bj,k,weightA,weightB,
0166 U salt,
0167 I myThid)
dd4d471098 Alis*0168
5c43c390b6 Alis*0169 #ifdef ALLOW_PTRACERS
dd54a44307 Mart*0170
7c50f07931 Mart*0171 IF ( usePTRACERS ) THEN
0172 CALL PTRACERS_CONVECT(
0173 I bi,bj,k,weightA,weightB,myThid)
0174 ENDIF
5c43c390b6 Alis*0175 #endif /* ALLOW_PTRACERS */
0176
dd54a44307 Mart*0177
7c50f07931 Mart*0178 ENDDO
218973b4ce Jean*0179
0fa2023ba5 Jean*0180
51575f66de Mart*0181
2cfc9d59a2 Patr*0182
51575f66de Mart*0183 #endif /* INCLUDE_CONVECT_INI_CALL */
2cfc9d59a2 Patr*0184
0185 RETURN
0186 END