** Warning **
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.
Last-Modified: Tue, 20 May 2024 05:11:26 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/model/src/convective_adjustment_ini.F
File indexing completed on 2023-05-28 05:09:48 UTC
view on github raw 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