/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_check.F
ViewVC logotype

Annotation of /MITgcm_contrib/dgoldberg/streamice/streamice_check.F

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


Revision 1.1 - (hide annotations) (download)
Thu Mar 29 15:59:21 2012 UTC (13 years, 3 months ago) by heimbach
Branch: MAIN
Initial check-in of Dan Goldberg's streamice package

1 heimbach 1.1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_check.F,v 1.5 2009/12/27 23:40:03 dng 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( A_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_RL ( "STREAMICE_ufacemask_bdry", "out",
308     & STREAMICE_ufacemask_bdry, 0, myThid )
309     CALL WRITE_FLD_XY_RL ( "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