Back to home page

MITgcm

 
 

    


File indexing completed on 2023-03-29 05:09:44 UTC

view on githubraw file Latest commit cda1c18f on 2023-03-28 22:31:47 UTC
2d5bb917cc Jean*0001 #include "PACKAGES_CONFIG.h"
aea29c8517 Alis*0002 #include "CPP_OPTIONS.h"
cda1c18f72 Jean*0003 #ifdef ALLOW_MOM_COMMON
                0004 # include "MOM_COMMON_OPTIONS.h"
                0005 #endif
2d5bb917cc Jean*0006 #ifdef ALLOW_CTRL
                0007 # include "CTRL_OPTIONS.h"
                0008 #endif
aea29c8517 Alis*0009 
9366854e02 Chri*0010 CBOP
                0011 C     !ROUTINE: INI_DYNVARS
                0012 C     !INTERFACE:
aea29c8517 Alis*0013       SUBROUTINE INI_DYNVARS( myThid )
9366854e02 Chri*0014 C     !DESCRIPTION: \bv
                0015 C     *==========================================================*
d18df35fee Jean*0016 C     | SUBROUTINE INI_DYNVARS
                0017 C     | o Initialise to zero all DYNVARS.h arrays
9366854e02 Chri*0018 C     *==========================================================*
                0019 C     | Sets all the State variables to zero.
                0020 C     | Sets all the Gs (arrays used for multi-level time-stepping)
                0021 C     | to zero.
                0022 C     *==========================================================*
                0023 C     \ev
                0024 
                0025 C     !USES:
aea29c8517 Alis*0026       IMPLICIT NONE
                0027 C     === Global variables ===
                0028 #include "SIZE.h"
                0029 #include "EEPARAMS.h"
                0030 #include "PARAMS.h"
                0031 #include "DYNVARS.h"
855d57fc61 Jean*0032 #ifdef ALLOW_SOLVE4_PS_AND_DRAG
                0033 #include "GRID.h"
                0034 #endif /* ALLOW_SOLVE4_PS_AND_DRAG */
aea29c8517 Alis*0035 
9366854e02 Chri*0036 C     !INPUT/OUTPUT PARAMETERS:
aea29c8517 Alis*0037 C     == Routine arguments ==
d18df35fee Jean*0038 C     myThid  :: my Thread Id. number
aea29c8517 Alis*0039       INTEGER myThid
                0040 
9366854e02 Chri*0041 C     !LOCAL VARIABLES:
aea29c8517 Alis*0042 C     == Local variables ==
d18df35fee Jean*0043 C     bi,bj   :: tile indices
229ac9feb6 Jean*0044 C     i,j,k   :: loop index
aea29c8517 Alis*0045       INTEGER bi, bj
229ac9feb6 Jean*0046       INTEGER i, j, k
9366854e02 Chri*0047 CEOP
aea29c8517 Alis*0048 
                0049 C--   Over all tiles
                0050       DO bj = myByLo(myThid), myByHi(myThid)
                0051        DO bi = myBxLo(myThid), myBxHi(myThid)
                0052 
                0053 C-      3D arrays
229ac9feb6 Jean*0054         DO k=1,Nr
                0055          DO j=1-OLy,sNy+OLy
                0056           DO i=1-OLx,sNx+OLx
aea29c8517 Alis*0057 
229ac9feb6 Jean*0058            uVel (i,j,k,bi,bj) = 0. _d 0
                0059            vVel (i,j,k,bi,bj) = 0. _d 0
                0060            wVel (i,j,k,bi,bj) = 0. _d 0
                0061            theta(i,j,k,bi,bj) = 0. _d 0
                0062            salt (i,j,k,bi,bj) = 0. _d 0
ad9b3080a0 Patr*0063 
229ac9feb6 Jean*0064            gU(i,j,k,bi,bj) = 0. _d 0
                0065            gV(i,j,k,bi,bj) = 0. _d 0
274224cbb1 Jean*0066 #ifdef USE_OLD_EXTERNAL_FORCING
229ac9feb6 Jean*0067            gT(i,j,k,bi,bj) = 0. _d 0
                0068            gS(i,j,k,bi,bj) = 0. _d 0
274224cbb1 Jean*0069 #endif
7d08bc1aa0 Jean*0070 #ifdef ALLOW_ADAMSBASHFORTH_3
229ac9feb6 Jean*0071            guNm(i,j,k,bi,bj,1) = 0. _d 0
                0072            gvNm(i,j,k,bi,bj,1) = 0. _d 0
                0073            gtNm(i,j,k,bi,bj,1) = 0. _d 0
                0074            gsNm(i,j,k,bi,bj,1) = 0. _d 0
                0075            guNm(i,j,k,bi,bj,2) = 0. _d 0
                0076            gvNm(i,j,k,bi,bj,2) = 0. _d 0
                0077            gtNm(i,j,k,bi,bj,2) = 0. _d 0
                0078            gsNm(i,j,k,bi,bj,2) = 0. _d 0
7d08bc1aa0 Jean*0079 #else
229ac9feb6 Jean*0080            guNm1(i,j,k,bi,bj) = 0. _d 0
                0081            gvNm1(i,j,k,bi,bj) = 0. _d 0
                0082            gtNm1(i,j,k,bi,bj) = 0. _d 0
                0083            gsNm1(i,j,k,bi,bj) = 0. _d 0
7d08bc1aa0 Jean*0084 #endif
2d5bb917cc Jean*0085 #if (defined (ALLOW_3D_DIFFKR) || defined (ALLOW_DIFFKR_CONTROL))
                0086            diffKr(i,j,k,bi,bj)= 0. _d 0
                0087 #endif
                0088 #ifdef ALLOW_SMAG_3D_DIFFUSIVITY
                0089            smag3D_diffK(i,j,k,bi,bj) = 0. _d 0
                0090 #endif
                0091            totPhiHyd(i,j,k,bi,bj)    = 0. _d 0
                0092            rhoInSitu(i,j,k,bi,bj)    = 0. _d 0
fa49f16b06 Jean*0093            IVDConvCount(i,j,k,bi,bj) = 0. _d 0
cda1c18f72 Jean*0094 #ifdef ALLOW_LEITH_QG
                0095            sigmaRfield(i,j,k,bi,bj)  = 0. _d 0
                0096 #endif
855d57fc61 Jean*0097 #ifdef ALLOW_SOLVE4_PS_AND_DRAG
2d5bb917cc Jean*0098            dU_psFacX(i,j,k,bi,bj)    = 0. _d 0
                0099            dV_psFacY(i,j,k,bi,bj)    = 0. _d 0
855d57fc61 Jean*0100 #endif /* ALLOW_SOLVE4_PS_AND_DRAG */
fb2c52cfd4 aver*0101 #ifdef INCLUDE_SOUNDSPEED_CALC_CODE
                0102            cSound(i,j,k,bi,bj)       = 0. _d 0
                0103 #endif /* INCLUDE_SOUNDSPEED_CALC_CODE */
aea29c8517 Alis*0104           ENDDO
                0105          ENDDO
                0106         ENDDO
                0107 
                0108 C-      2D arrays
fb2c52cfd4 aver*0109         DO j=1-OLy,sNy+OLy
                0110          DO i=1-OLx,sNx+OLx
229ac9feb6 Jean*0111           etaN(i,j,bi,bj) = 0. _d 0
                0112           etaH(i,j,bi,bj) = 0. _d 0
                0113           phiHydLow(i,j,bi,bj) = 0. _d 0
                0114           hMixLayer(i,j,bi,bj) = 0. _d 0
aea29c8517 Alis*0115          ENDDO
                0116         ENDDO
                0117 
855d57fc61 Jean*0118 #ifdef ALLOW_SOLVE4_PS_AND_DRAG
                0119 C--   Put some constant values (if not part of S/R INI_FIELDS):
                0120         DO k=1,Nr
                0121          DO j=1-OLy,sNy+OLy
                0122           DO i=1-OLx,sNx+OLx
                0123            dU_psFacX(i,j,k,bi,bj) = maskW(i,j,k,bi,bj)
                0124      &                             *recip_deepFacC(k)*recip_rhoFacC(k)
                0125            dV_psFacY(i,j,k,bi,bj) = maskS(i,j,k,bi,bj)
                0126      &                             *recip_deepFacC(k)*recip_rhoFacC(k)
                0127           ENDDO
                0128          ENDDO
                0129         ENDDO
                0130 #endif /* ALLOW_SOLVE4_PS_AND_DRAG */
                0131 
aea29c8517 Alis*0132        ENDDO
                0133       ENDDO
                0134 
                0135       RETURN
                0136       END