/[MITgcm]/MITgcm/pkg/streamice/streamice_check.F
ViewVC logotype

Contents of /MITgcm/pkg/streamice/streamice_check.F

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


Revision 1.5 - (show annotations) (download)
Sun Oct 12 21:55:02 2014 UTC (9 years, 6 months ago) by dgoldberg
Branch: MAIN
CVS Tags: 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, checkpoint65f, checkpoint65g, HEAD
Changes since 1.4: +11 -11 lines
bug fix -- would not compile

1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_check.F,v 1.4 2014/10/12 13:27:31 dgoldberg Exp $
2 C $Name: $
3
4 #include "STREAMICE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP 0
8 C !ROUTINE: STREAMICE_CHECK
9
10 C !INTERFACE:
11 SUBROUTINE STREAMICE_CHECK( myThid )
12
13 C !DESCRIPTION:
14 C Check dependances with other packages
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "GRID.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "STREAMICE.h"
23 #include "STREAMICE_CG.h"
24 #include "STREAMICE_BDRY.h"
25
26 C !INPUT PARAMETERS:
27 INTEGER myThid
28 CEOP
29
30 #ifdef ALLOW_STREAMICE
31 C !LOCAL VARIABLES:
32 C msgBuf :: Informational/error message buffer
33 CHARACTER*(MAX_LEN_MBUF) msgBuf
34 CHARACTER*(10) fname
35 INTEGER m,n,k
36
37 _BEGIN_MASTER(myThid)
38
39 WRITE(msgBuf,'(A)') 'STREAMICE_CHECK: #define STREAMICE'
40 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
41 & SQUEEZE_RIGHT , 1)
42
43 C- write out integer parameters
44
45 CALL WRITE_0D_I( streamice_max_cg_iter, INDEX_NONE,
46 & ' max cg interations =',
47 & ' /* user defined parameter */')
48 CALL WRITE_0D_I( streamice_max_nl_iter, INDEX_NONE,
49 & ' max nonlin interations =',
50 & ' /* user defined parameter */')
51 CALL WRITE_0D_I( streamice_nstep_velocity, INDEX_NONE,
52 & ' # of timesteps per velocity solve =',
53 & ' /* user defined parameter */')
54
55
56 C- write out real parameters
57
58 CALL WRITE_0D_RL( streamice_density, INDEX_NONE,
59 & ' streamice_density =', ' /* user defined parameter */')
60 CALL WRITE_0D_RL( streamice_density_ocean_avg, INDEX_NONE,
61 & ' streamice_density_ocean_avg =',
62 & ' /* user defined parameter */')
63 CALL WRITE_0D_RL( B_glen_isothermal, INDEX_NONE,
64 & ' glens law stifness =',
65 & ' /* user defined parameter */')
66 CALL WRITE_0D_RL( n_glen, INDEX_NONE,
67 & ' glens law exponent =',
68 & ' /* user defined parameter */')
69 CALL WRITE_0D_RL( C_basal_fric_const, INDEX_NONE,
70 & ' basal trac coeff =',
71 & ' /* user defined parameter */')
72 CALL WRITE_0D_RL( n_basal_friction, INDEX_NONE,
73 & ' basal exponent =',
74 & ' /* user defined parameter */')
75 CALL WRITE_0D_RL( streamice_input_flux_unif, INDEX_NONE,
76 & ' uniform input flux (m^2/a) =',
77 & ' /* user defined parameter */')
78 CALL WRITE_0D_RL( streamice_vel_update, INDEX_NONE,
79 & ' time for ice vel update (sec) =',
80 & ' /* user defined parameter */')
81 CALL WRITE_0D_RL( streamice_cg_tol, INDEX_NONE,
82 & ' conj grad tolerance =',
83 & ' /* user defined parameter */')
84 CALL WRITE_0D_RL( streamice_nonlin_tol, INDEX_NONE,
85 & ' ice velocity nonlinear iter tol =',
86 & ' /* user defined parameter */')
87 CALL WRITE_0D_RL( shelf_max_draft, INDEX_NONE,
88 & ' max shelf draft for analytic init (m) =',
89 & ' /* user defined parameter */')
90 CALL WRITE_0D_RL( shelf_min_draft, INDEX_NONE,
91 & ' min shelf draft for analytic init (m) =',
92 & ' /* user defined parameter */')
93 CALL WRITE_0D_RL( shelf_edge_pos, INDEX_NONE,
94 & ' shelf extent for analytic init (km) =',
95 & ' /* user defined parameter */')
96 CALL WRITE_0D_RL( shelf_slope_scale, INDEX_NONE,
97 & ' slope scale for analytic init (km) =',
98 & ' /* user defined parameter */')
99 CALL WRITE_0D_RL( shelf_flat_width, INDEX_NONE,
100 & ' flat shelf width for analytic init (km) =',
101 & ' /* user defined parameter */')
102 CALL WRITE_0D_RL( flow_dir, INDEX_NONE,
103 & ' flow direction for analytic init =',
104 & ' /* user defined parameter */')
105
106 CALL WRITE_0D_RL( min_x_noflow_NORTH, INDEX_NONE,
107 & ' min range on no bd for no-slip (km) =',
108 & ' /* user defined parameter */')
109 CALL WRITE_0D_RL( max_x_noflow_NORTH, INDEX_NONE,
110 & ' max range on no bd for no-slip (km) =',
111 & ' /* user defined parameter */')
112 CALL WRITE_0D_RL( min_x_noflow_SOUTH, INDEX_NONE,
113 & ' min range on so bd for no-slip (km) =',
114 & ' /* user defined parameter */')
115 CALL WRITE_0D_RL( max_x_noflow_SOUTH, INDEX_NONE,
116 & ' max range on so bd for no-slip (km) =',
117 & ' /* user defined parameter */')
118 CALL WRITE_0D_RL( min_y_noflow_EAST, INDEX_NONE,
119 & ' min range on east bd for no-slip (km) =',
120 & ' /* user defined parameter */')
121 CALL WRITE_0D_RL( max_y_noflow_EAST, INDEX_NONE,
122 & ' max range on east bd for no-slip (km) =',
123 & ' /* user defined parameter */')
124 CALL WRITE_0D_RL( min_y_noflow_WEST, INDEX_NONE,
125 & ' min range on west bd for no-slip (km) =',
126 & ' /* user defined parameter */')
127 CALL WRITE_0D_RL( max_y_noflow_WEST, INDEX_NONE,
128 & ' max range on west bd for no-slip (km) =',
129 & ' /* user defined parameter */')
130
131 CALL WRITE_0D_RL( min_x_noStress_NORTH, INDEX_NONE,
132 & ' min range on no bd for no-stress (km) =',
133 & ' /* user defined parameter */')
134 CALL WRITE_0D_RL( max_x_noStress_NORTH, INDEX_NONE,
135 & ' max range on no bd for no-stress (km) =',
136 & ' /* user defined parameter */')
137 CALL WRITE_0D_RL( min_x_noStress_SOUTH, INDEX_NONE,
138 & ' min range on so bd for no-stress (km) =',
139 & ' /* user defined parameter */')
140 CALL WRITE_0D_RL( max_x_noStress_SOUTH, INDEX_NONE,
141 & ' max range on so bd for no-stress (km) =',
142 & ' /* user defined parameter */')
143 CALL WRITE_0D_RL( min_y_noStress_EAST, INDEX_NONE,
144 & ' min range on east bd for no-stress (km) =',
145 & ' /* user defined parameter */')
146 CALL WRITE_0D_RL( max_y_noStress_EAST, INDEX_NONE,
147 & ' max range on east bd for no-stress (km) =',
148 & ' /* user defined parameter */')
149 CALL WRITE_0D_RL( min_y_noStress_WEST, INDEX_NONE,
150 & ' min range on west bd for no-stress (km) =',
151 & ' /* user defined parameter */')
152 CALL WRITE_0D_RL( max_y_noStress_WEST, INDEX_NONE,
153 & ' max range on west bd for no-stress (km) =',
154 & ' /* user defined parameter */')
155
156 CALL WRITE_0D_RL( min_x_FluxBdry_NORTH, INDEX_NONE,
157 & ' min range on no bd for FluxBdry (km) =',
158 & ' /* user defined parameter */')
159 CALL WRITE_0D_RL( max_x_FluxBdry_NORTH, INDEX_NONE,
160 & ' max range on no bd for FluxBdry (km) =',
161 & ' /* user defined parameter */')
162 CALL WRITE_0D_RL( min_x_FluxBdry_SOUTH, INDEX_NONE,
163 & ' min range on so bd for FluxBdry (km) =',
164 & ' /* user defined parameter */')
165 CALL WRITE_0D_RL( max_x_FluxBdry_SOUTH, INDEX_NONE,
166 & ' max range on so bd for FluxBdry (km) =',
167 & ' /* user defined parameter */')
168 CALL WRITE_0D_RL( min_y_FluxBdry_EAST, INDEX_NONE,
169 & ' min range on east bd for FluxBdry (km) =',
170 & ' /* user defined parameter */')
171 CALL WRITE_0D_RL( max_y_FluxBdry_EAST, INDEX_NONE,
172 & ' max range on east bd for FluxBdry (km) =',
173 & ' /* user defined parameter */')
174 CALL WRITE_0D_RL( min_y_FluxBdry_WEST, INDEX_NONE,
175 & ' min range on west bd for FluxBdry (km) =',
176 & ' /* user defined parameter */')
177 CALL WRITE_0D_RL( max_y_FluxBdry_WEST, INDEX_NONE,
178 & ' max range on west bd for FluxBdry (km) =',
179 & ' /* user defined parameter */')
180
181 CALL WRITE_0D_RL( min_x_Dirich_NORTH, INDEX_NONE,
182 & ' min range on no bd for Dirich (km) =',
183 & ' /* user defined parameter */')
184 CALL WRITE_0D_RL( max_x_Dirich_NORTH, INDEX_NONE,
185 & ' max range on no bd for Dirich (km) =',
186 & ' /* user defined parameter */')
187 CALL WRITE_0D_RL( min_x_Dirich_SOUTH, INDEX_NONE,
188 & ' min range on so bd for Dirich (km) =',
189 & ' /* user defined parameter */')
190 CALL WRITE_0D_RL( max_x_Dirich_SOUTH, INDEX_NONE,
191 & ' max range on so bd for Dirich (km) =',
192 & ' /* user defined parameter */')
193 CALL WRITE_0D_RL( min_y_Dirich_EAST, INDEX_NONE,
194 & ' min range on east bd for Dirich (km) =',
195 & ' /* user defined parameter */')
196 CALL WRITE_0D_RL( max_y_Dirich_EAST, INDEX_NONE,
197 & ' max range on east bd for Dirich (km) =',
198 & ' /* user defined parameter */')
199 CALL WRITE_0D_RL( min_y_Dirich_WEST, INDEX_NONE,
200 & ' min range on west bd for Dirich (km) =',
201 & ' /* user defined parameter */')
202 CALL WRITE_0D_RL( max_y_Dirich_WEST, INDEX_NONE,
203 & ' max range on west bd for Dirich (km) =',
204 & ' /* user defined parameter */')
205
206 CALL WRITE_0D_RL( min_x_CFBC_NORTH, INDEX_NONE,
207 & ' min range on no bd for CFBC (km) =',
208 & ' /* user defined parameter */')
209 CALL WRITE_0D_RL( max_x_CFBC_NORTH, INDEX_NONE,
210 & ' max range on no bd for CFBC (km) =',
211 & ' /* user defined parameter */')
212 CALL WRITE_0D_RL( min_x_CFBC_SOUTH, INDEX_NONE,
213 & ' min range on so bd for CFBC (km) =',
214 & ' /* user defined parameter */')
215 CALL WRITE_0D_RL( max_x_CFBC_SOUTH, INDEX_NONE,
216 & ' max range on so bd for CFBC (km) =',
217 & ' /* user defined parameter */')
218 CALL WRITE_0D_RL( min_y_CFBC_EAST, INDEX_NONE,
219 & ' min range on east bd for CFBC (km) =',
220 & ' /* user defined parameter */')
221 CALL WRITE_0D_RL( max_y_CFBC_EAST, INDEX_NONE,
222 & ' max range on east bd for CFBC (km) =',
223 & ' /* user defined parameter */')
224 CALL WRITE_0D_RL( min_y_CFBC_WEST, INDEX_NONE,
225 & ' min range on west bd for CFBC (km) =',
226 & ' /* user defined parameter */')
227 CALL WRITE_0D_RL( max_y_CFBC_WEST, INDEX_NONE,
228 & ' max range on west bd for CFBC (km) =',
229 & ' /* user defined parameter */')
230
231 CALL WRITE_0D_RL( flux_bdry_val_NORTH, INDEX_NONE,
232 & ' val (m^2/a) for north flux bdry =',
233 & ' /* user defined parameter */')
234 CALL WRITE_0D_RL( flux_bdry_val_SOUTH, INDEX_NONE,
235 & ' val (m^2/a) for south flux bdry =',
236 & ' /* user defined parameter */')
237 CALL WRITE_0D_RL( flux_bdry_val_EAST, INDEX_NONE,
238 & ' val (m^2/a) for east flux bdry =',
239 & ' /* user defined parameter */')
240 CALL WRITE_0D_RL( flux_bdry_val_WEST, INDEX_NONE,
241 & ' val (m^2/a) for west flux bdry =',
242 & ' /* user defined parameter */')
243
244
245 C- write out logical parameters
246
247 CALL WRITE_0D_L( STREAMICE_dump_mdsio, INDEX_NONE,
248 & ' streamice_dump_mdsio =', ' /* user defined parameter */')
249 CALL WRITE_0D_L( STREAMICE_dump_mdsio, INDEX_NONE,
250 & ' streamice_dump_mdsio =', ' /* user defined parameter */')
251 CALL WRITE_0D_L( STREAMICE_dump_mnc, INDEX_NONE,
252 & ' streamice_dump_mnc =', ' /* user defined parameter */')
253 CALL WRITE_0D_L( STREAMICE_tave_mnc, INDEX_NONE,
254 & ' streamice_tave_mnc =', ' /* user defined parameter */')
255 ! CALL WRITE_0D_L( STREAMICE_GL_regularize, INDEX_NONE,
256 ! & ' streamice_GL_regularize =', ' /* user defined parameter */')
257 CALL WRITE_0D_L( STREAMICE_move_front, INDEX_NONE,
258 & ' streamice_move_front =', ' /* user defined parameter */')
259 CALL WRITE_0D_L( STREAMICE_calve_to_mask, INDEX_NONE,
260 & ' streamice_calve_to_mask =', ' /* user defined parameter */')
261
262 C- write out string parameters
263
264 CALL WRITE_0D_C( STREAMICEthickInit,-1,INDEX_NONE,
265 & 'STREAMICEthickInit =',
266 & ' /* user defined parameter */')
267 CALL WRITE_0D_C( STREAMICEthickFile,-1,INDEX_NONE,
268 & 'STREAMICEthickFile =',
269 & ' /* user defined parameter */')
270 CALL WRITE_0D_C( STREAMICEcalveMaskFile,-1,INDEX_NONE,
271 & 'STREAMICEcalveMaskFile =',
272 & ' /* user defined parameter */')
273
274 C- Put stops here if some flags are wrongly chosen.
275 C- For example, require this package to use tempStepping
276
277 _END_MASTER(myThid)
278
279 C write init_thickness array to a binary file
280
281 ! CALL WRITE_FLD_XY_RL ( "H_streamIce", "init",
282 ! & H_streamIce, 0, myThid )
283 ! CALL WRITE_FLD_XY_RL ( "area_shelf_streamice", "init",
284 ! & area_shelf_streamice, 0, myThid )
285 ! CALL WRITE_FLD_XY_RL ( "STREAMICE_hmask", "init",
286 ! & STREAMICE_hmask, 0, myThid )
287 ! CALL WRITE_FLD_XY_RL ( "base_el_streamice", "init",
288 ! & base_el_streamice, 0, myThid )
289 ! CALL WRITE_FLD_XY_RL ( "ssurf_el_streamice", "init",
290 ! & surf_el_streamice, 0, myThid )
291
292 ! DO m=1,4
293 ! DO n=1,4
294 ! DO k=1,2
295 ! WRITE(fname,'(A,I1,A,I1,A,I1)')
296 ! & "Dphi_", m, "_", n, "_", k
297 ! CALL WRITE_FLD_XY_RL (fname, "",
298 ! & Dphi(:,:,:,:,m,n,k),0,myThid)
299 ! ENDDO
300 ! ENDDO
301 ! ENDDO
302
303 CALL WRITE_FLD_XY_RL ( "k1AtC_str", "out",
304 & k1AtC_str, 0, myThid )
305 CALL WRITE_FLD_XY_RL ( "k2AtC_str", "out",
306 & k2AtC_str, 0, myThid )
307 CALL WRITE_FLD_XY_RS ( "STREAMICE_ufacemask_bdry", "out",
308 & STREAMICE_ufacemask_bdry, 0, myThid )
309 CALL WRITE_FLD_XY_RS ( "STREAMICE_vfacemask_bdry", "out",
310 & STREAMICE_vfacemask_bdry, 0, myThid )
311 CALL WRITE_FLD_XY_RL ( "u_bdry_values_SI", "out",
312 & u_bdry_values_SI, 0, myThid )
313 CALL WRITE_FLD_XY_RL ( "v_bdry_values_SI", "out",
314 & v_bdry_values_SI, 0, myThid )
315 CALL WRITE_FLD_XY_RL ( "u_flux_bdry_SI", "out",
316 & u_flux_bdry_SI, 0, myThid )
317 CALL WRITE_FLD_XY_RL ( "v_flux_bdry_SI", "out",
318 & v_flux_bdry_SI, 0, myThid )
319
320 #endif /* ALLOW_STREAMICE */
321
322 RETURN
323 END

  ViewVC Help
Powered by ViewVC 1.1.22