/[MITgcm]/MITgcm/pkg/kpp/kpp_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/kpp/kpp_init_fixed.F

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


Revision 1.4 - (show annotations) (download)
Sat Apr 3 22:28:45 2010 UTC (14 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint63, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, HEAD
Changes since 1.3: +11 -1 lines
change diagnostic of KPP non-local fraction: output average of
 KPPghat*KPPdiffKzS (= ratio of KPP non-local (salt) flux relative to surface-flux)
 when using pkg/timeave & pkg/diagnostics (diag 'KPPghatK' replaces 'KPPghat ')

1 C $Header: /u/gcmpack/MITgcm/pkg/kpp/kpp_init_fixed.F,v 1.3 2009/07/08 21:57:51 jmc Exp $
2 C $Name: $
3
4 #include "KPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: KPP_INIT_FIXED
8 C !INTERFACE:
9 SUBROUTINE KPP_INIT_FIXED( myThid )
10
11 C !DESCRIPTION: \bv
12 C *==========================================================*
13 C | SUBROUTINE KPP_INIT_FIXED
14 C | o Routine to initialize GM/Redi variables
15 C | that are kept fixed during the run.
16 C *==========================================================*
17 C \ev
18 C !USES:
19 IMPLICIT NONE
20
21 C === Global variables ===
22 #include "EEPARAMS.h"
23 #include "SIZE.h"
24 #include "PARAMS.h"
25 #include "GRID.h"
26 #include "KPP_PARAMS.h"
27
28 C !INPUT/OUTPUT PARAMETERS:
29 C === Routine arguments ===
30 C myThid :: my Thread Id number
31 INTEGER myThid
32 CEOP
33
34 C !LOCAL VARIABLES:
35 C === Local variables ===
36 C i,j,k,bi,bj - Loop counters
37 C zehat - zeta * ustar**3
38 C zeta - Stability parameter d/l
39 INTEGER i, j, k
40 _RL zehat
41 _RL zeta
42 _RL usta
43 _RL p25, p33
44
45 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
46 C-- Note: this should go in a separated S/R: KPP_MNC_INIT
47 #ifdef ALLOW_MNC
48 IF (useMNC) THEN
49 C Define grid types for KPP variables
50 CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t',
51 & 4,5, myThid)
52 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s',
53 & myThid)
54 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name',
55 & 'KPP_vertical_eddy_viscosity_coefficient', myThid)
56 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz',
57 & 'coordinates','XC YC RC iter', myThid)
58
59 CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t',
60 & 4,5, myThid)
61 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s',
62 & myThid)
63 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name',
64 & 'KPP_salt-tracer_vertical_diffusion_coefficient',
65 & myThid)
66 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS',
67 & 'coordinates','XC YC RC iter', myThid)
68
69 CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t',
70 & 4,5, myThid)
71 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s',
72 & myThid)
73 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name',
74 & 'KPP_vertical_heat_diffusion_coefficient', myThid)
75 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT',
76 & 'coordinates','XC YC RC iter', myThid)
77
78 CALL MNC_CW_ADD_VNAME('KPPGHAT', 'Cen_xy_Hn__C__t',
79 & 4,5, myThid)
80 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','units','s/m^2',
81 & myThid)
82 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','long_name',
83 & 'KPP_nonlocal_transport_coefficient', myThid)
84 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT',
85 & 'coordinates','XC YC RC iter', myThid)
86
87 CALL MNC_CW_ADD_VNAME('KPPghatKS', 'Cen_xy_Hn__L__t',
88 & 4,5, myThid)
89 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','units','0-1',
90 & myThid)
91 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','long_name',
92 & 'ratio of KPP non-local (salt) flux relative to surface-flux',
93 & myThid)
94 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','coordinates',
95 & 'XC YC RF iter', myThid)
96
97 CALL MNC_CW_ADD_VNAME('KPPHBL', 'Cen_xy_Hn__-__t',
98 & 3,4, myThid)
99 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','units','m',
100 & myThid)
101 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','long_name',
102 & 'KPP_boundary_layer_depth', myThid)
103 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL',
104 & 'coordinates','XC YC iter', myThid)
105
106 CALL MNC_CW_ADD_VNAME('KPPFRAC', 'Cen_xy_Hn__-__t',
107 & 3,4, myThid)
108 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','units','dimless',
109 & myThid)
110 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','long_name',
111 & 'KPP_short-wave_fraction_penetrating_mixing_layer',
112 & myThid)
113 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC',
114 & 'coordinates','XC YC iter', myThid)
115 ENDIF
116 #endif /* ALLOW_MNC */
117 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
118
119 _BEGIN_MASTER(myThid)
120
121 p25 = 0.25 _d 0
122 p33 = 1. _d 0 / 3. _d 0
123
124 C-----------------------------------------------------------------------
125 C Initialize constants that depend on parameters in data.kpp
126 C-----------------------------------------------------------------------
127
128 Vtc = concv * SQRT(0.2 _d 0 /concs/epsilon) / vonk**2 / Ricr
129 cg = cstar * vonk * (concs * vonk * epsilon)**p33
130
131 c-----------------------------------------------------------------------
132 c construct the wm and ws lookup tables
133 c-----------------------------------------------------------------------
134
135 deltaz = (zmax - zmin)/(nni + 1)
136 deltau = (umax - umin)/(nnj + 1)
137
138 DO i = 0, nni + 1
139 zehat = deltaz*i + zmin
140 DO j = 0, nnj + 1
141 usta = deltau*j + umin
142 zeta = zehat / max(phepsi,usta**3)
143 IF (zehat .GE. 0.) THEN
144 wmt(i,j) = vonk*usta/(1. + conc1*zeta)
145 wst(i,j) = wmt(i,j)
146 ELSE
147 IF (zeta .GT. zetam) THEN
148 wmt(i,j) = vonk*usta*(1. - conc2*zeta)**p25
149 ELSE
150 wmt(i,j) = vonk*(conam*usta**3 - concm*zehat)**p33
151 ENDIF
152 IF (zeta .GT. zetas) THEN
153 wst(i,j) = vonk*usta*SQRT(1. _d 0 - conc3*zeta)
154 ELSE
155 wst(i,j) = vonk*(conas*usta**3 - concs*zehat)**p33
156 ENDIF
157 ENDIF
158 ENDDO
159 ENDDO
160
161 C-----------------------------------------------------------------------
162 C vertical grid
163 C-----------------------------------------------------------------------
164
165 IF (minKPPhbl .EQ. UNSET_RL) THEN
166 minKPPhbl = -rC(1)
167 ENDIF
168 zgrid(0) = phepsi
169 hwide(0) = phepsi
170 c zgrid(1) = -drF(1)*0.5
171 c hwide(1) = drF(1)
172 c DO k = 2, Nr
173 c zgrid(k) = zgrid(k-1) - (drF(k-1)+drF(k))*0.5
174 c hwide(k) = drF(k)
175 c ENDDO
176 C- jmc : use the model vertical grid :
177 DO k = 1, Nr
178 zgrid(k) = rC(k)
179 hwide(k) = drF(k)
180 ENDDO
181
182 zgrid(Nrp1) = zgrid(Nr) * 100.
183
184 hwide(Nrp1) = phepsi
185
186 _END_MASTER(myThid)
187 _BARRIER
188
189 #ifdef ALLOW_DIAGNOSTICS
190 IF ( useDiagnostics ) THEN
191 CALL KPP_DIAGNOSTICS_INIT( myThid )
192 ENDIF
193 #endif
194
195 RETURN
196 END

  ViewVC Help
Powered by ViewVC 1.1.22