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

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

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


Revision 1.4 - (hide annotations) (download)
Sun Oct 12 13:27:31 2014 UTC (9 years, 7 months ago) by dgoldberg
Branch: MAIN
Changes since 1.3: +11 -11 lines
remove costly write of basis function to file

1 dgoldberg 1.4 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_check.F,v 1.3 2014/07/10 15:09:40 dgoldberg Exp $
2 dgoldberg 1.1 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 jmc 1.2 CHARACTER*(10) fname
35 dgoldberg 1.1 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 jmc 1.2 CALL WRITE_0D_I( streamice_max_cg_iter, INDEX_NONE,
46 dgoldberg 1.1 & ' max cg interations =',
47     & ' /* user defined parameter */')
48 jmc 1.2 CALL WRITE_0D_I( streamice_max_nl_iter, INDEX_NONE,
49 dgoldberg 1.1 & ' max nonlin interations =',
50     & ' /* user defined parameter */')
51 jmc 1.2 CALL WRITE_0D_I( streamice_nstep_velocity, INDEX_NONE,
52 dgoldberg 1.1 & ' # 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 jmc 1.2 CALL WRITE_0D_RL( streamice_density_ocean_avg, INDEX_NONE,
61     & ' streamice_density_ocean_avg =',
62 dgoldberg 1.1 & ' /* user defined parameter */')
63 jmc 1.2 CALL WRITE_0D_RL( B_glen_isothermal, INDEX_NONE,
64     & ' glens law stifness =',
65 dgoldberg 1.1 & ' /* user defined parameter */')
66 jmc 1.2 CALL WRITE_0D_RL( n_glen, INDEX_NONE,
67     & ' glens law exponent =',
68 dgoldberg 1.1 & ' /* user defined parameter */')
69 jmc 1.2 CALL WRITE_0D_RL( C_basal_fric_const, INDEX_NONE,
70     & ' basal trac coeff =',
71 dgoldberg 1.1 & ' /* user defined parameter */')
72 jmc 1.2 CALL WRITE_0D_RL( n_basal_friction, INDEX_NONE,
73     & ' basal exponent =',
74 dgoldberg 1.1 & ' /* user defined parameter */')
75 jmc 1.2 CALL WRITE_0D_RL( streamice_input_flux_unif, INDEX_NONE,
76     & ' uniform input flux (m^2/a) =',
77 dgoldberg 1.1 & ' /* user defined parameter */')
78 jmc 1.2 CALL WRITE_0D_RL( streamice_vel_update, INDEX_NONE,
79     & ' time for ice vel update (sec) =',
80 dgoldberg 1.1 & ' /* user defined parameter */')
81 jmc 1.2 CALL WRITE_0D_RL( streamice_cg_tol, INDEX_NONE,
82     & ' conj grad tolerance =',
83 dgoldberg 1.1 & ' /* user defined parameter */')
84 jmc 1.2 CALL WRITE_0D_RL( streamice_nonlin_tol, INDEX_NONE,
85     & ' ice velocity nonlinear iter tol =',
86 dgoldberg 1.1 & ' /* user defined parameter */')
87 jmc 1.2 CALL WRITE_0D_RL( shelf_max_draft, INDEX_NONE,
88     & ' max shelf draft for analytic init (m) =',
89 dgoldberg 1.1 & ' /* user defined parameter */')
90 jmc 1.2 CALL WRITE_0D_RL( shelf_min_draft, INDEX_NONE,
91     & ' min shelf draft for analytic init (m) =',
92 dgoldberg 1.1 & ' /* user defined parameter */')
93 jmc 1.2 CALL WRITE_0D_RL( shelf_edge_pos, INDEX_NONE,
94     & ' shelf extent for analytic init (km) =',
95 dgoldberg 1.1 & ' /* user defined parameter */')
96 jmc 1.2 CALL WRITE_0D_RL( shelf_slope_scale, INDEX_NONE,
97     & ' slope scale for analytic init (km) =',
98 dgoldberg 1.1 & ' /* user defined parameter */')
99 jmc 1.2 CALL WRITE_0D_RL( shelf_flat_width, INDEX_NONE,
100     & ' flat shelf width for analytic init (km) =',
101 dgoldberg 1.1 & ' /* user defined parameter */')
102 jmc 1.2 CALL WRITE_0D_RL( flow_dir, INDEX_NONE,
103     & ' flow direction for analytic init =',
104 dgoldberg 1.1 & ' /* user defined parameter */')
105    
106 jmc 1.2 CALL WRITE_0D_RL( min_x_noflow_NORTH, INDEX_NONE,
107     & ' min range on no bd for no-slip (km) =',
108 dgoldberg 1.1 & ' /* user defined parameter */')
109 jmc 1.2 CALL WRITE_0D_RL( max_x_noflow_NORTH, INDEX_NONE,
110     & ' max range on no bd for no-slip (km) =',
111 dgoldberg 1.1 & ' /* user defined parameter */')
112 jmc 1.2 CALL WRITE_0D_RL( min_x_noflow_SOUTH, INDEX_NONE,
113     & ' min range on so bd for no-slip (km) =',
114 dgoldberg 1.1 & ' /* user defined parameter */')
115 jmc 1.2 CALL WRITE_0D_RL( max_x_noflow_SOUTH, INDEX_NONE,
116     & ' max range on so bd for no-slip (km) =',
117 dgoldberg 1.1 & ' /* user defined parameter */')
118 jmc 1.2 CALL WRITE_0D_RL( min_y_noflow_EAST, INDEX_NONE,
119     & ' min range on east bd for no-slip (km) =',
120 dgoldberg 1.1 & ' /* user defined parameter */')
121 jmc 1.2 CALL WRITE_0D_RL( max_y_noflow_EAST, INDEX_NONE,
122     & ' max range on east bd for no-slip (km) =',
123 dgoldberg 1.1 & ' /* user defined parameter */')
124 jmc 1.2 CALL WRITE_0D_RL( min_y_noflow_WEST, INDEX_NONE,
125     & ' min range on west bd for no-slip (km) =',
126 dgoldberg 1.1 & ' /* user defined parameter */')
127 jmc 1.2 CALL WRITE_0D_RL( max_y_noflow_WEST, INDEX_NONE,
128     & ' max range on west bd for no-slip (km) =',
129 dgoldberg 1.1 & ' /* user defined parameter */')
130    
131 jmc 1.2 CALL WRITE_0D_RL( min_x_noStress_NORTH, INDEX_NONE,
132     & ' min range on no bd for no-stress (km) =',
133 dgoldberg 1.1 & ' /* user defined parameter */')
134 jmc 1.2 CALL WRITE_0D_RL( max_x_noStress_NORTH, INDEX_NONE,
135     & ' max range on no bd for no-stress (km) =',
136 dgoldberg 1.1 & ' /* user defined parameter */')
137 jmc 1.2 CALL WRITE_0D_RL( min_x_noStress_SOUTH, INDEX_NONE,
138     & ' min range on so bd for no-stress (km) =',
139 dgoldberg 1.1 & ' /* user defined parameter */')
140 jmc 1.2 CALL WRITE_0D_RL( max_x_noStress_SOUTH, INDEX_NONE,
141     & ' max range on so bd for no-stress (km) =',
142 dgoldberg 1.1 & ' /* user defined parameter */')
143 jmc 1.2 CALL WRITE_0D_RL( min_y_noStress_EAST, INDEX_NONE,
144     & ' min range on east bd for no-stress (km) =',
145 dgoldberg 1.1 & ' /* user defined parameter */')
146 jmc 1.2 CALL WRITE_0D_RL( max_y_noStress_EAST, INDEX_NONE,
147     & ' max range on east bd for no-stress (km) =',
148 dgoldberg 1.1 & ' /* user defined parameter */')
149 jmc 1.2 CALL WRITE_0D_RL( min_y_noStress_WEST, INDEX_NONE,
150     & ' min range on west bd for no-stress (km) =',
151 dgoldberg 1.1 & ' /* user defined parameter */')
152 jmc 1.2 CALL WRITE_0D_RL( max_y_noStress_WEST, INDEX_NONE,
153     & ' max range on west bd for no-stress (km) =',
154 dgoldberg 1.1 & ' /* user defined parameter */')
155    
156 jmc 1.2 CALL WRITE_0D_RL( min_x_FluxBdry_NORTH, INDEX_NONE,
157     & ' min range on no bd for FluxBdry (km) =',
158 dgoldberg 1.1 & ' /* user defined parameter */')
159 jmc 1.2 CALL WRITE_0D_RL( max_x_FluxBdry_NORTH, INDEX_NONE,
160     & ' max range on no bd for FluxBdry (km) =',
161 dgoldberg 1.1 & ' /* user defined parameter */')
162 jmc 1.2 CALL WRITE_0D_RL( min_x_FluxBdry_SOUTH, INDEX_NONE,
163     & ' min range on so bd for FluxBdry (km) =',
164 dgoldberg 1.1 & ' /* user defined parameter */')
165 jmc 1.2 CALL WRITE_0D_RL( max_x_FluxBdry_SOUTH, INDEX_NONE,
166     & ' max range on so bd for FluxBdry (km) =',
167 dgoldberg 1.1 & ' /* user defined parameter */')
168 jmc 1.2 CALL WRITE_0D_RL( min_y_FluxBdry_EAST, INDEX_NONE,
169     & ' min range on east bd for FluxBdry (km) =',
170 dgoldberg 1.1 & ' /* user defined parameter */')
171 jmc 1.2 CALL WRITE_0D_RL( max_y_FluxBdry_EAST, INDEX_NONE,
172     & ' max range on east bd for FluxBdry (km) =',
173 dgoldberg 1.1 & ' /* user defined parameter */')
174 jmc 1.2 CALL WRITE_0D_RL( min_y_FluxBdry_WEST, INDEX_NONE,
175     & ' min range on west bd for FluxBdry (km) =',
176 dgoldberg 1.1 & ' /* user defined parameter */')
177 jmc 1.2 CALL WRITE_0D_RL( max_y_FluxBdry_WEST, INDEX_NONE,
178     & ' max range on west bd for FluxBdry (km) =',
179 dgoldberg 1.1 & ' /* user defined parameter */')
180    
181 jmc 1.2 CALL WRITE_0D_RL( min_x_Dirich_NORTH, INDEX_NONE,
182     & ' min range on no bd for Dirich (km) =',
183 dgoldberg 1.1 & ' /* user defined parameter */')
184 jmc 1.2 CALL WRITE_0D_RL( max_x_Dirich_NORTH, INDEX_NONE,
185     & ' max range on no bd for Dirich (km) =',
186 dgoldberg 1.1 & ' /* user defined parameter */')
187 jmc 1.2 CALL WRITE_0D_RL( min_x_Dirich_SOUTH, INDEX_NONE,
188     & ' min range on so bd for Dirich (km) =',
189 dgoldberg 1.1 & ' /* user defined parameter */')
190 jmc 1.2 CALL WRITE_0D_RL( max_x_Dirich_SOUTH, INDEX_NONE,
191     & ' max range on so bd for Dirich (km) =',
192 dgoldberg 1.1 & ' /* user defined parameter */')
193 jmc 1.2 CALL WRITE_0D_RL( min_y_Dirich_EAST, INDEX_NONE,
194     & ' min range on east bd for Dirich (km) =',
195 dgoldberg 1.1 & ' /* user defined parameter */')
196 jmc 1.2 CALL WRITE_0D_RL( max_y_Dirich_EAST, INDEX_NONE,
197     & ' max range on east bd for Dirich (km) =',
198 dgoldberg 1.1 & ' /* user defined parameter */')
199 jmc 1.2 CALL WRITE_0D_RL( min_y_Dirich_WEST, INDEX_NONE,
200     & ' min range on west bd for Dirich (km) =',
201 dgoldberg 1.1 & ' /* user defined parameter */')
202 jmc 1.2 CALL WRITE_0D_RL( max_y_Dirich_WEST, INDEX_NONE,
203     & ' max range on west bd for Dirich (km) =',
204 dgoldberg 1.1 & ' /* user defined parameter */')
205    
206 jmc 1.2 CALL WRITE_0D_RL( min_x_CFBC_NORTH, INDEX_NONE,
207     & ' min range on no bd for CFBC (km) =',
208 dgoldberg 1.1 & ' /* user defined parameter */')
209 jmc 1.2 CALL WRITE_0D_RL( max_x_CFBC_NORTH, INDEX_NONE,
210     & ' max range on no bd for CFBC (km) =',
211 dgoldberg 1.1 & ' /* user defined parameter */')
212 jmc 1.2 CALL WRITE_0D_RL( min_x_CFBC_SOUTH, INDEX_NONE,
213     & ' min range on so bd for CFBC (km) =',
214 dgoldberg 1.1 & ' /* user defined parameter */')
215 jmc 1.2 CALL WRITE_0D_RL( max_x_CFBC_SOUTH, INDEX_NONE,
216     & ' max range on so bd for CFBC (km) =',
217 dgoldberg 1.1 & ' /* user defined parameter */')
218 jmc 1.2 CALL WRITE_0D_RL( min_y_CFBC_EAST, INDEX_NONE,
219     & ' min range on east bd for CFBC (km) =',
220 dgoldberg 1.1 & ' /* user defined parameter */')
221 jmc 1.2 CALL WRITE_0D_RL( max_y_CFBC_EAST, INDEX_NONE,
222     & ' max range on east bd for CFBC (km) =',
223 dgoldberg 1.1 & ' /* user defined parameter */')
224 jmc 1.2 CALL WRITE_0D_RL( min_y_CFBC_WEST, INDEX_NONE,
225     & ' min range on west bd for CFBC (km) =',
226 dgoldberg 1.1 & ' /* user defined parameter */')
227 jmc 1.2 CALL WRITE_0D_RL( max_y_CFBC_WEST, INDEX_NONE,
228     & ' max range on west bd for CFBC (km) =',
229 dgoldberg 1.1 & ' /* user defined parameter */')
230    
231 jmc 1.2 CALL WRITE_0D_RL( flux_bdry_val_NORTH, INDEX_NONE,
232     & ' val (m^2/a) for north flux bdry =',
233 dgoldberg 1.1 & ' /* user defined parameter */')
234 jmc 1.2 CALL WRITE_0D_RL( flux_bdry_val_SOUTH, INDEX_NONE,
235     & ' val (m^2/a) for south flux bdry =',
236 dgoldberg 1.1 & ' /* user defined parameter */')
237 jmc 1.2 CALL WRITE_0D_RL( flux_bdry_val_EAST, INDEX_NONE,
238     & ' val (m^2/a) for east flux bdry =',
239 dgoldberg 1.1 & ' /* user defined parameter */')
240 jmc 1.2 CALL WRITE_0D_RL( flux_bdry_val_WEST, INDEX_NONE,
241     & ' val (m^2/a) for west flux bdry =',
242 dgoldberg 1.1 & ' /* user defined parameter */')
243 jmc 1.2
244 dgoldberg 1.1
245     C- write out logical parameters
246    
247 jmc 1.2 CALL WRITE_0D_L( STREAMICE_dump_mdsio, INDEX_NONE,
248 dgoldberg 1.1 & ' streamice_dump_mdsio =', ' /* user defined parameter */')
249 jmc 1.2 CALL WRITE_0D_L( STREAMICE_dump_mdsio, INDEX_NONE,
250 dgoldberg 1.1 & ' streamice_dump_mdsio =', ' /* user defined parameter */')
251 jmc 1.2 CALL WRITE_0D_L( STREAMICE_dump_mnc, INDEX_NONE,
252 dgoldberg 1.1 & ' streamice_dump_mnc =', ' /* user defined parameter */')
253 jmc 1.2 CALL WRITE_0D_L( STREAMICE_tave_mnc, INDEX_NONE,
254 dgoldberg 1.1 & ' streamice_tave_mnc =', ' /* user defined parameter */')
255 dgoldberg 1.3 ! CALL WRITE_0D_L( STREAMICE_GL_regularize, INDEX_NONE,
256     ! & ' streamice_GL_regularize =', ' /* user defined parameter */')
257 jmc 1.2 CALL WRITE_0D_L( STREAMICE_move_front, INDEX_NONE,
258 dgoldberg 1.1 & ' streamice_move_front =', ' /* user defined parameter */')
259 jmc 1.2 CALL WRITE_0D_L( STREAMICE_calve_to_mask, INDEX_NONE,
260 dgoldberg 1.1 & ' 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 jmc 1.2 ! CALL WRITE_FLD_XY_RL ( "H_streamIce", "init",
282 dgoldberg 1.1 ! & H_streamIce, 0, myThid )
283 jmc 1.2 ! CALL WRITE_FLD_XY_RL ( "area_shelf_streamice", "init",
284 dgoldberg 1.1 ! & area_shelf_streamice, 0, myThid )
285 jmc 1.2 ! CALL WRITE_FLD_XY_RL ( "STREAMICE_hmask", "init",
286 dgoldberg 1.1 ! & STREAMICE_hmask, 0, myThid )
287 jmc 1.2 ! CALL WRITE_FLD_XY_RL ( "base_el_streamice", "init",
288 dgoldberg 1.1 ! & base_el_streamice, 0, myThid )
289 jmc 1.2 ! CALL WRITE_FLD_XY_RL ( "ssurf_el_streamice", "init",
290 dgoldberg 1.1 ! & surf_el_streamice, 0, myThid )
291 jmc 1.2
292 dgoldberg 1.4 ! 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 dgoldberg 1.1
303 jmc 1.2 CALL WRITE_FLD_XY_RL ( "k1AtC_str", "out",
304 dgoldberg 1.1 & k1AtC_str, 0, myThid )
305 jmc 1.2 CALL WRITE_FLD_XY_RL ( "k2AtC_str", "out",
306 dgoldberg 1.1 & k2AtC_str, 0, myThid )
307 jmc 1.2 CALL WRITE_FLD_XY_RS ( "STREAMICE_ufacemask_bdry", "out",
308 dgoldberg 1.1 & STREAMICE_ufacemask_bdry, 0, myThid )
309 jmc 1.2 CALL WRITE_FLD_XY_RS ( "STREAMICE_vfacemask_bdry", "out",
310 dgoldberg 1.1 & STREAMICE_vfacemask_bdry, 0, myThid )
311 jmc 1.2 CALL WRITE_FLD_XY_RL ( "u_bdry_values_SI", "out",
312 dgoldberg 1.1 & u_bdry_values_SI, 0, myThid )
313 jmc 1.2 CALL WRITE_FLD_XY_RL ( "v_bdry_values_SI", "out",
314 dgoldberg 1.1 & v_bdry_values_SI, 0, myThid )
315 jmc 1.2 CALL WRITE_FLD_XY_RL ( "u_flux_bdry_SI", "out",
316 dgoldberg 1.1 & u_flux_bdry_SI, 0, myThid )
317 jmc 1.2 CALL WRITE_FLD_XY_RL ( "v_flux_bdry_SI", "out",
318 dgoldberg 1.1 & v_flux_bdry_SI, 0, myThid )
319    
320     #endif /* ALLOW_STREAMICE */
321    
322     RETURN
323     END

  ViewVC Help
Powered by ViewVC 1.1.22