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

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

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


Revision 1.4 - (hide 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 jmc 1.4 C $Header: /u/gcmpack/MITgcm/pkg/kpp/kpp_init_fixed.F,v 1.3 2009/07/08 21:57:51 jmc Exp $
2 dimitri 1.1 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 jmc 1.3 C | o Routine to initialize GM/Redi variables
15 dimitri 1.1 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 dfer 1.2 #include "GRID.h"
26     #include "KPP_PARAMS.h"
27 dimitri 1.1
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 dfer 1.2 C i,j,k,bi,bj - Loop counters
37     C zehat - zeta * ustar**3
38     C zeta - Stability parameter d/l
39 jmc 1.3 INTEGER i, j, k
40 dfer 1.2 _RL zehat
41     _RL zeta
42     _RL usta
43     _RL p25, p33
44    
45 jmc 1.3 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 jmc 1.4 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 jmc 1.3 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 dfer 1.2
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 dimitri 1.1
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