C $Header: /u/gcmpack/MITgcm/model/src/ini_mixing.F,v 1.16 2017/04/03 17:09:01 ou.wang Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" #ifdef ALLOW_CTRL # include "CTRL_OPTIONS.h" #endif #ifdef ALLOW_GMREDI # include "GMREDI_OPTIONS.h" #endif CBOP C !ROUTINE: INI_MIXING C !INTERFACE: SUBROUTINE INI_MIXING( myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE INI_MIXING C | o Initialise diffusivity to default constant value. C *==========================================================* C \ev C !USES: IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "DYNVARS.h" #ifdef ALLOW_CTRL # include "CTRL_FIELDS.h" # ifdef ALLOW_GMREDI # include "GMREDI.h" # endif #endif C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myThid :: Number of this instance INTEGER myThid C !LOCAL VARIABLES: C == Local variables == C bi,bj :: tile indices C i,j,k :: Loop counters INTEGER bi, bj INTEGER i, j, k CEOP DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO k=1,Nr DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx #ifdef ALLOW_3D_DIFFKR diffKr(i,j,k,bi,bj) = diffKrNrS(k) #endif #if (defined (ALLOW_CTRL) defined (ALLOW_GMREDI)) # ifdef ALLOW_KAPGM_CONTROL kapGM(i,j,k,bi,bj) = GM_background_K* & GM_bolFac2d(i,j,bi,bj)*GM_bolFac1d(k) # endif # ifdef ALLOW_KAPREDI_CONTROL kapRedi(i,j,k,bi,bj) = GM_isopycK* & GM_isoFac2d(i,j,bi,bj)*GM_isoFac1d(k) # endif #endif /* ALLOW_CTRL & ALLOW_GMREDI */ ENDDO ENDDO ENDDO ENDDO ENDDO #ifdef ALLOW_BL79_LAT_VARY DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx BL79LatArray(i,j,bi,bj) = 0.0 _d 0 IF ( ABS(YC(i,j,bi,bj)) .LT. BL79LatVary ) & BL79LatArray(i,j,bi,bj) = & ( 1 + COS(YC(i,j,bi,bj)*pi/BL79LatVary) ) / 2 ENDDO ENDDO ENDDO ENDDO #endif #ifdef ALLOW_3D_DIFFKR IF ( diffKrFile .NE. ' ' ) THEN CALL READ_FLD_XYZ_RL(diffKrFile,' ',diffKr,0,myThid) _EXCH_XYZ_RL( diffKr, myThid ) ENDIF #endif /* ALLOW_3D_DIFFKR */ #ifdef ALLOW_CTRL #ifdef ALLOW_KAPGM_CONTROL #ifdef ALLOW_KAPGM_3DFILE IF ( GM_background_K3dFile .NE. ' ' ) THEN CALL READ_FLD_XYZ_RL(GM_background_K3dFile,' ',KapGM,0,myThid) ENDIF #endif _EXCH_XYZ_RL( kapGM, myThid ) CALL WRITE_FLD_XYZ_RL( 'KapGM', ' ', kapGM, 0, myThid ) #endif #ifdef ALLOW_KAPREDI_CONTROL #ifdef ALLOW_KAPREDI_3DFILE IF ( GM_isopycK3dFile .NE. ' ' ) THEN CALL READ_FLD_XYZ_RL(GM_isopycK3dFile,' ',KapRedi,0,myThid) ENDIF #endif _EXCH_XYZ_RL( kapRedi, myThid ) CALL WRITE_FLD_XYZ_RL( 'KapRedi', ' ', kapRedi, 0, myThid ) #endif #endif /* ALLOW_CTRL */ RETURN END