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

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

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


Revision 1.16 - (hide annotations) (download)
Mon Apr 3 17:09:01 2017 UTC (7 years, 2 months 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 ou.wang 1.16 C $Header: /u/gcmpack/MITgcm/model/src/ini_mixing.F,v 1.15 2015/11/06 16:27:35 jmc Exp $
2 jmc 1.3 C $Name: $
3 heimbach 1.1
4 jmc 1.10 #include "PACKAGES_CONFIG.h"
5 heimbach 1.1 #include "CPP_OPTIONS.h"
6 jmc 1.12 #ifdef ALLOW_CTRL
7     # include "CTRL_OPTIONS.h"
8     #endif
9 jmc 1.13 #ifdef ALLOW_GMREDI
10 heimbach 1.4 # include "GMREDI_OPTIONS.h"
11     #endif
12    
13 cnh 1.2 CBOP
14     C !ROUTINE: INI_MIXING
15     C !INTERFACE:
16 heimbach 1.1 SUBROUTINE INI_MIXING( myThid )
17 cnh 1.2 C !DESCRIPTION: \bv
18     C *==========================================================*
19 jmc 1.10 C | SUBROUTINE INI_MIXING
20     C | o Initialise diffusivity to default constant value.
21 cnh 1.2 C *==========================================================*
22     C \ev
23    
24     C !USES:
25 heimbach 1.1 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 jmc 1.13 #ifdef ALLOW_CTRL
33     # include "CTRL_FIELDS.h"
34     # ifdef ALLOW_GMREDI
35     # include "GMREDI.h"
36     # endif
37 heimbach 1.4 #endif
38 heimbach 1.1
39 cnh 1.2 C !INPUT/OUTPUT PARAMETERS:
40 heimbach 1.1 C == Routine arguments ==
41 jmc 1.13 C myThid :: Number of this instance
42 heimbach 1.1 INTEGER myThid
43    
44 cnh 1.2 C !LOCAL VARIABLES:
45 heimbach 1.1 C == Local variables ==
46 jmc 1.13 C bi,bj :: tile indices
47     C i,j,k :: Loop counters
48 heimbach 1.1 INTEGER bi, bj
49     INTEGER i, j, k
50 cnh 1.2 CEOP
51 heimbach 1.1
52     DO bj = myByLo(myThid), myByHi(myThid)
53     DO bi = myBxLo(myThid), myBxHi(myThid)
54 jmc 1.3 DO k=1,Nr
55 jmc 1.12 DO j = 1-OLy, sNy+OLy
56     DO i = 1-OLx, sNx+OLx
57 jmc 1.10 #ifdef ALLOW_3D_DIFFKR
58 jmc 1.3 diffKr(i,j,k,bi,bj) = diffKrNrS(k)
59 heimbach 1.1 #endif
60 jmc 1.13 #if (defined (ALLOW_CTRL) && defined (ALLOW_GMREDI))
61     # ifdef ALLOW_KAPGM_CONTROL
62 jmc 1.15 kapGM(i,j,k,bi,bj) = GM_background_K*
63 gforget 1.14 & GM_bolFac2d(i,j,bi,bj)*GM_bolFac1d(k)
64 jmc 1.13 # endif
65     # ifdef ALLOW_KAPREDI_CONTROL
66 gforget 1.14 kapRedi(i,j,k,bi,bj) = GM_isopycK*
67     & GM_isoFac2d(i,j,bi,bj)*GM_isoFac1d(k)
68 jmc 1.13 # endif
69     #endif /* ALLOW_CTRL & ALLOW_GMREDI */
70 heimbach 1.1 ENDDO
71     ENDDO
72     ENDDO
73     ENDDO
74     ENDDO
75    
76 dimitri 1.7 #ifdef ALLOW_BL79_LAT_VARY
77     DO bj = myByLo(myThid), myByHi(myThid)
78     DO bi = myBxLo(myThid), myBxHi(myThid)
79 jmc 1.12 DO j = 1-OLy, sNy+OLy
80     DO i = 1-OLx, sNx+OLx
81 dimitri 1.7 BL79LatArray(i,j,bi,bj) = 0.0 _d 0
82 jmc 1.15 IF ( ABS(YC(i,j,bi,bj)) .LT. BL79LatVary )
83 dimitri 1.7 & BL79LatArray(i,j,bi,bj) =
84 jmc 1.15 & ( 1 + COS(YC(i,j,bi,bj)*pi/BL79LatVary) ) / 2
85 dimitri 1.7 ENDDO
86     ENDDO
87     ENDDO
88     ENDDO
89     #endif
90    
91 jmc 1.10 #ifdef ALLOW_3D_DIFFKR
92 dimitri 1.6 IF ( diffKrFile .NE. ' ' ) THEN
93 jmc 1.15 CALL READ_FLD_XYZ_RL(diffKrFile,' ',diffKr,0,myThid)
94     _EXCH_XYZ_RL( diffKr, myThid )
95 dimitri 1.5 ENDIF
96 jmc 1.13 #endif /* ALLOW_3D_DIFFKR */
97     #ifdef ALLOW_CTRL
98 ou.wang 1.16 #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 jmc 1.15 _EXCH_XYZ_RL( kapGM, myThid )
105     CALL WRITE_FLD_XYZ_RL( 'KapGM', ' ', kapGM, 0, myThid )
106 ou.wang 1.16 #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 jmc 1.15 _EXCH_XYZ_RL( kapRedi, myThid )
114     CALL WRITE_FLD_XYZ_RL( 'KapRedi', ' ', kapRedi, 0, myThid )
115 ou.wang 1.16 #endif
116 jmc 1.13 #endif /* ALLOW_CTRL */
117 heimbach 1.1 RETURN
118     END

  ViewVC Help
Powered by ViewVC 1.1.22