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

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

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


Revision 1.12 - (hide annotations) (download)
Wed Oct 20 21:54:17 2004 UTC (19 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint56, checkpoint55i_post, checkpoint55j_post, checkpoint56a_post
Changes since 1.11: +3 -2 lines
Compute the non-local term using either KPP vertical diffusivity (default)
         or the total vertical diffusivity (when KPP_ghatUseTotalDiffus=T)

1 jmc 1.12 C $Header: /u/gcmpack/MITgcm/pkg/kpp/kpp_readparms.F,v 1.11 2004/10/14 20:29:21 jmc Exp $
2 jmc 1.5 C $Name: $
3 heimbach 1.1 #include "KPP_OPTIONS.h"
4    
5 edhill 1.9 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
6     CBOP 0
7     C !ROUTINE: KPP_READPARMS
8    
9     C !INTERFACE:
10 heimbach 1.1 SUBROUTINE KPP_READPARMS( myThid )
11 edhill 1.9
12     C !DESCRIPTION:
13     C Routine to read in file data.kpp
14    
15     C !USES:
16 heimbach 1.1 IMPLICIT NONE
17     #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21     #include "KPP_PARAMS.h"
22    
23 edhill 1.9 C !INPUT PARAMETERS:
24 heimbach 1.1 INTEGER myThid
25 edhill 1.9 CEOP
26 heimbach 1.1
27 edhill 1.9 C !LOCAL VARIABLES:
28 heimbach 1.1 #ifdef ALLOW_KPP
29     C msgBuf - Informational/error meesage buffer
30     C errIO - IO error flag
31     C iUnit - Work variable for IO unit number
32    
33     CHARACTER*(MAX_LEN_MBUF) msgBuf
34 dimitri 1.7 INTEGER errIO, iUnit
35 heimbach 1.1
36     C-- KPP vertical mixing parameters
37     NAMELIST /KPP_PARM01/
38     & kpp_freq, kpp_dumpFreq, kpp_taveFreq,
39 jmc 1.12 & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus,
40 heimbach 1.1 & minKPPhbl,
41     & epsln, phepsi, epsilon, vonk, dB_dz,
42     & conc1, conam, concm, conc2, zetam,
43     & conas, concs, conc3, zetas,
44     & Ricr, cekman, cmonob, concv, hbf,
45     & zmin, zmax, umin, umax,
46     & num_v_smooth_Ri, num_v_smooth_BV,
47     & num_z_smooth_sh, num_m_smooth_sh,
48     & Riinfty, BVSQcon, difm0, difs0, dift0,
49     & difmcon, difscon, diftcon,
50     & cstar
51    
52     _BEGIN_MASTER(myThid)
53    
54     WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp'
55     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
56     & SQUEEZE_RIGHT , 1)
57    
58    
59     CALL OPEN_COPY_DATA_FILE(
60     I 'data.kpp', 'KPP_INIT',
61     O iUnit,
62     I myThid )
63    
64     C-- set default KPP vertical mixing parameters
65     kpp_freq = deltaTClock
66 dimitri 1.8 kpp_dumpFreq = dumpFreq
67     kpp_taveFreq = taveFreq
68 heimbach 1.1 KPPmixingMaps = .FALSE.
69     KPPwriteState = .FALSE.
70 jmc 1.12 KPP_ghatUseTotalDiffus = .FALSE.
71 jmc 1.11 IF ( setCenterDr ) THEN
72     minKPPhbl = delRc(1)
73     ELSE
74     minKPPhbl = delR(1)*0.5
75     ENDIF
76 heimbach 1.1
77     C-----------------------------------------------------------------------
78     C define some non-dimensional constants and
79     C the vertical mixing coefficients in m-k-s units
80     C-----------------------------------------------------------------------
81    
82     epsln = 1.e-20
83     phepsi = 1.e-10
84     epsilon = 0.1
85     vonk = 0.40
86     dB_dz = 5.2e-5
87     conc1 = 5.0
88     conam = 1.257
89     concm = 8.380
90     conc2 = 16.0
91     zetam = -0.2
92     conas = -28.86
93     concs = 98.96
94     conc3 = 16.0
95     zetas = -1.0
96    
97     c parameters for subroutine "bldepth"
98    
99     Ricr = 0.30
100     cekman = 0.7
101     cmonob = 1.0
102     concv = 1.8
103     hbf = 1.0
104    
105     c parameters and common arrays for subroutines
106     c "kmixinit" and "wscale"
107    
108     zmin = -4.e-7
109     zmax = 0.0
110     umin = 0.0
111     umax = .04
112    
113     c parameters for subroutine "Ri_iwmix"
114    
115     num_v_smooth_Ri = 0
116     num_v_smooth_BV = 0
117     num_z_smooth_sh = 0
118     num_m_smooth_sh = 0
119     Riinfty = 0.7
120     BVSQcon = -0.2e-4
121    
122     difm0 = 0.005
123     difs0 = 0.005
124     dift0 = 0.005
125    
126     difmcon = 0.1
127     difscon = 0.1
128     diftcon = 0.1
129    
130     C parameters for subroutine "blmix"
131    
132     cstar = 10.
133    
134     C-----------------------------------------------------------------------
135    
136     C-- Read settings from model parameter file "data.kpp".
137     READ(UNIT=iUnit,NML=KPP_PARM01,IOSTAT=errIO)
138     IF ( errIO .LT. 0 ) THEN
139     WRITE(msgBuf,'(A)')
140     & 'S/R INI_PARMS'
141     CALL PRINT_ERROR( msgBuf , 1)
142     WRITE(msgBuf,'(A)')
143     & 'Error reading numerical model '
144     CALL PRINT_ERROR( msgBuf , 1)
145     WRITE(msgBuf,'(A)')
146     & 'parameter file "data.kpp"'
147     CALL PRINT_ERROR( msgBuf , 1)
148     WRITE(msgBuf,'(A)')
149     & 'Problem in namelist KPP_PARM01'
150     CALL PRINT_ERROR( msgBuf , 1)
151     C CALL MODELDATA_EXAMPLE( myThid )
152     STOP 'ABNORMAL END: S/R KPP_INIT'
153     ENDIF
154    
155     CLOSE(iUnit)
156    
157     WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp'
158     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
159     & SQUEEZE_RIGHT , 1)
160    
161     _END_MASTER(myThid)
162    
163 edhill 1.9 #ifdef ALLOW_MNC
164     IF (useMNC) THEN
165     C Define grid types for KPP variables
166     CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t',
167     & 4,5, myThid)
168     CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s',
169     & myThid)
170     CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name',
171     & 'KPP_vertical_eddy_viscosity_coefficient', myThid)
172     CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz',
173     & 'coordinates','XC YC RC iter', myThid)
174    
175     CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t',
176     & 4,5, myThid)
177     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s',
178     & myThid)
179     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name',
180     & 'KPP_salt-tracer_vertical_diffusion_coefficient',
181     & myThid)
182     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS',
183     & 'coordinates','XC YC RC iter', myThid)
184    
185     CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t',
186     & 4,5, myThid)
187     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s',
188     & myThid)
189     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name',
190     & 'KPP_vertical_heat_diffusion_coefficient', myThid)
191     CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT',
192     & 'coordinates','XC YC RC iter', myThid)
193    
194     CALL MNC_CW_ADD_VNAME('KPPghat', 'Cen_xy_Hn__C__t',
195     & 4,5, myThid)
196     CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','units','s/m^2',
197     & myThid)
198     CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','long_name',
199     & 'KPP_nonlocal_transport_coefficient', myThid)
200     CALL MNC_CW_ADD_VATTR_TEXT('KPPghat',
201     & 'coordinates','XC YC RC iter', myThid)
202    
203     CALL MNC_CW_ADD_VNAME('KPPhbl', 'Cen_xy_Hn__-__t',
204     & 3,4, myThid)
205     CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','units','m',
206     & myThid)
207     CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','long_name',
208     & 'KPP_mixing_layer_depth', myThid)
209     CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl',
210     & 'coordinates','XC YC iter', myThid)
211    
212     CALL MNC_CW_ADD_VNAME('KPPfrac', 'Cen_xy_Hn__-__t',
213     & 3,4, myThid)
214     CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','units','dimless',
215     & myThid)
216     CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','long_name',
217     & 'KPP_short-wave_fraction_penetrating_mixing_layer',
218     & myThid)
219     CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac',
220     & 'coordinates','XC YC iter', myThid)
221     ENDIF
222     #endif /* ALLOW_MNC */
223    
224 heimbach 1.1 C-- Everyone else must wait for the parameters to be loaded
225     _BARRIER
226    
227     #endif /* ALLOW_KPP */
228    
229     return
230     end

  ViewVC Help
Powered by ViewVC 1.1.22