/[MITgcm]/MITgcm/model/src/ini_mixing.F
ViewVC logotype

Contents of /MITgcm/model/src/ini_mixing.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.16 - (show annotations) (download)
Mon Apr 3 17:09:01 2017 UTC (7 years ago) by ou.wang
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.15: +15 -5 lines
Add a capability to read in 3D KapGM and KapRedi from a file

1 C $Header: /u/gcmpack/MITgcm/model/src/ini_mixing.F,v 1.15 2015/11/06 16:27:35 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6 #ifdef ALLOW_CTRL
7 # include "CTRL_OPTIONS.h"
8 #endif
9 #ifdef ALLOW_GMREDI
10 # include "GMREDI_OPTIONS.h"
11 #endif
12
13 CBOP
14 C !ROUTINE: INI_MIXING
15 C !INTERFACE:
16 SUBROUTINE INI_MIXING( myThid )
17 C !DESCRIPTION: \bv
18 C *==========================================================*
19 C | SUBROUTINE INI_MIXING
20 C | o Initialise diffusivity to default constant value.
21 C *==========================================================*
22 C \ev
23
24 C !USES:
25 IMPLICIT NONE
26 C === Global variables ===
27 #include "SIZE.h"
28 #include "EEPARAMS.h"
29 #include "PARAMS.h"
30 #include "GRID.h"
31 #include "DYNVARS.h"
32 #ifdef ALLOW_CTRL
33 # include "CTRL_FIELDS.h"
34 # ifdef ALLOW_GMREDI
35 # include "GMREDI.h"
36 # endif
37 #endif
38
39 C !INPUT/OUTPUT PARAMETERS:
40 C == Routine arguments ==
41 C myThid :: Number of this instance
42 INTEGER myThid
43
44 C !LOCAL VARIABLES:
45 C == Local variables ==
46 C bi,bj :: tile indices
47 C i,j,k :: Loop counters
48 INTEGER bi, bj
49 INTEGER i, j, k
50 CEOP
51
52 DO bj = myByLo(myThid), myByHi(myThid)
53 DO bi = myBxLo(myThid), myBxHi(myThid)
54 DO k=1,Nr
55 DO j = 1-OLy, sNy+OLy
56 DO i = 1-OLx, sNx+OLx
57 #ifdef ALLOW_3D_DIFFKR
58 diffKr(i,j,k,bi,bj) = diffKrNrS(k)
59 #endif
60 #if (defined (ALLOW_CTRL) && defined (ALLOW_GMREDI))
61 # ifdef ALLOW_KAPGM_CONTROL
62 kapGM(i,j,k,bi,bj) = GM_background_K*
63 & GM_bolFac2d(i,j,bi,bj)*GM_bolFac1d(k)
64 # endif
65 # ifdef ALLOW_KAPREDI_CONTROL
66 kapRedi(i,j,k,bi,bj) = GM_isopycK*
67 & GM_isoFac2d(i,j,bi,bj)*GM_isoFac1d(k)
68 # endif
69 #endif /* ALLOW_CTRL & ALLOW_GMREDI */
70 ENDDO
71 ENDDO
72 ENDDO
73 ENDDO
74 ENDDO
75
76 #ifdef ALLOW_BL79_LAT_VARY
77 DO bj = myByLo(myThid), myByHi(myThid)
78 DO bi = myBxLo(myThid), myBxHi(myThid)
79 DO j = 1-OLy, sNy+OLy
80 DO i = 1-OLx, sNx+OLx
81 BL79LatArray(i,j,bi,bj) = 0.0 _d 0
82 IF ( ABS(YC(i,j,bi,bj)) .LT. BL79LatVary )
83 & BL79LatArray(i,j,bi,bj) =
84 & ( 1 + COS(YC(i,j,bi,bj)*pi/BL79LatVary) ) / 2
85 ENDDO
86 ENDDO
87 ENDDO
88 ENDDO
89 #endif
90
91 #ifdef ALLOW_3D_DIFFKR
92 IF ( diffKrFile .NE. ' ' ) THEN
93 CALL READ_FLD_XYZ_RL(diffKrFile,' ',diffKr,0,myThid)
94 _EXCH_XYZ_RL( diffKr, myThid )
95 ENDIF
96 #endif /* ALLOW_3D_DIFFKR */
97 #ifdef ALLOW_CTRL
98 #ifdef ALLOW_KAPGM_CONTROL
99 #ifdef ALLOW_KAPGM_3DFILE
100 IF ( GM_background_K3dFile .NE. ' ' ) THEN
101 CALL READ_FLD_XYZ_RL(GM_background_K3dFile,' ',KapGM,0,myThid)
102 ENDIF
103 #endif
104 _EXCH_XYZ_RL( kapGM, myThid )
105 CALL WRITE_FLD_XYZ_RL( 'KapGM', ' ', kapGM, 0, myThid )
106 #endif
107 #ifdef ALLOW_KAPREDI_CONTROL
108 #ifdef ALLOW_KAPREDI_3DFILE
109 IF ( GM_isopycK3dFile .NE. ' ' ) THEN
110 CALL READ_FLD_XYZ_RL(GM_isopycK3dFile,' ',KapRedi,0,myThid)
111 ENDIF
112 #endif
113 _EXCH_XYZ_RL( kapRedi, myThid )
114 CALL WRITE_FLD_XYZ_RL( 'KapRedi', ' ', kapRedi, 0, myThid )
115 #endif
116 #endif /* ALLOW_CTRL */
117 RETURN
118 END

  ViewVC Help
Powered by ViewVC 1.1.22