/[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.3 - (hide annotations) (download)
Wed Jul 8 21:57:51 2009 UTC (14 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62d, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.2: +66 -3 lines
move MNC calls from _readparms.F to _init_fixed.F (called after ini_model_io)

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/kpp/kpp_init_fixed.F,v 1.2 2008/11/14 21:34:48 dfer 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     CALL MNC_CW_ADD_VNAME('KPPHBL', 'Cen_xy_Hn__-__t',
88     & 3,4, myThid)
89     CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','units','m',
90     & myThid)
91     CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','long_name',
92     & 'KPP_boundary_layer_depth', myThid)
93     CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL',
94     & 'coordinates','XC YC iter', myThid)
95    
96     CALL MNC_CW_ADD_VNAME('KPPFRAC', 'Cen_xy_Hn__-__t',
97     & 3,4, myThid)
98     CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','units','dimless',
99     & myThid)
100     CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','long_name',
101     & 'KPP_short-wave_fraction_penetrating_mixing_layer',
102     & myThid)
103     CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC',
104     & 'coordinates','XC YC iter', myThid)
105     ENDIF
106     #endif /* ALLOW_MNC */
107     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
108 dfer 1.2
109     _BEGIN_MASTER(myThid)
110    
111     p25 = 0.25 _d 0
112     p33 = 1. _d 0 / 3. _d 0
113    
114     C-----------------------------------------------------------------------
115     C Initialize constants that depend on parameters in data.kpp
116     C-----------------------------------------------------------------------
117    
118     Vtc = concv * SQRT(0.2 _d 0 /concs/epsilon) / vonk**2 / Ricr
119     cg = cstar * vonk * (concs * vonk * epsilon)**p33
120    
121     c-----------------------------------------------------------------------
122     c construct the wm and ws lookup tables
123     c-----------------------------------------------------------------------
124    
125     deltaz = (zmax - zmin)/(nni + 1)
126     deltau = (umax - umin)/(nnj + 1)
127    
128     DO i = 0, nni + 1
129     zehat = deltaz*i + zmin
130     DO j = 0, nnj + 1
131     usta = deltau*j + umin
132     zeta = zehat / max(phepsi,usta**3)
133     IF (zehat .GE. 0.) THEN
134     wmt(i,j) = vonk*usta/(1. + conc1*zeta)
135     wst(i,j) = wmt(i,j)
136     ELSE
137     IF (zeta .GT. zetam) THEN
138     wmt(i,j) = vonk*usta*(1. - conc2*zeta)**p25
139     ELSE
140     wmt(i,j) = vonk*(conam*usta**3 - concm*zehat)**p33
141     ENDIF
142     IF (zeta .GT. zetas) THEN
143     wst(i,j) = vonk*usta*SQRT(1. _d 0 - conc3*zeta)
144     ELSE
145     wst(i,j) = vonk*(conas*usta**3 - concs*zehat)**p33
146     ENDIF
147     ENDIF
148     ENDDO
149     ENDDO
150    
151     C-----------------------------------------------------------------------
152     C vertical grid
153     C-----------------------------------------------------------------------
154    
155     IF (minKPPhbl .EQ. UNSET_RL) THEN
156     minKPPhbl = -rC(1)
157     ENDIF
158     zgrid(0) = phepsi
159     hwide(0) = phepsi
160     c zgrid(1) = -drF(1)*0.5
161     c hwide(1) = drF(1)
162     c DO k = 2, Nr
163     c zgrid(k) = zgrid(k-1) - (drF(k-1)+drF(k))*0.5
164     c hwide(k) = drF(k)
165     c ENDDO
166     C- jmc : use the model vertical grid :
167     DO k = 1, Nr
168     zgrid(k) = rC(k)
169     hwide(k) = drF(k)
170     ENDDO
171    
172     zgrid(Nrp1) = zgrid(Nr) * 100.
173    
174     hwide(Nrp1) = phepsi
175    
176     _END_MASTER(myThid)
177     _BARRIER
178 dimitri 1.1
179     #ifdef ALLOW_DIAGNOSTICS
180     IF ( useDiagnostics ) THEN
181     CALL KPP_DIAGNOSTICS_INIT( myThid )
182     ENDIF
183     #endif
184    
185     RETURN
186     END

  ViewVC Help
Powered by ViewVC 1.1.22